USAGE NOTES FOR SOUNDSHAPER 6
===============================
 Robert Fraser, Ensemble Software and CDP 2021.
Content is liable to change as Soundshaper is updated.
Portions of this text have been adapted from CDP Help, with permission.
You are welcome to adapt the text for your own (non-commercial) use:
 The usage for a process begins with an ID no. in square brackets
  and ends with the next ID no. Avoid using lines beginning with a square-bracket '[' ! 
 Comment lines beginning with // are not displayed.
 If you translate any of the text, please share it with us, to help other users.
------------------------------------------------------------------------------------------------------
//SOUNDFILE PROCESSES (1)

[100]  CycCount: 
CYCCOUNT (CDP: distort count) counts the wavesets (pseudo-wavecycles) in a soundfile. 
 
PARAMETERS: none

[101]  CycReform
CycReform (CDP: distort reform) 

CycReform is the simplest DISTORT process, substituting simple waveforms (sine, square etc.) for wavesets (pseudo-wavecycles).

MODES
1 Square (fixed):  replace wavesets with square waves all at same level
2 Square (varying):  replace wavesets with square waves with level varying according to the input file
3 Triangle (fixed):  replace wavesets with triangular waves all at same level
4 Triangle (varying): replace wavesets with triangular waves with level varying according to the input file
5 Invert 1/2 cycles: waveforms are inverted at each half-cycle
6 Click: replace wavesets with square pulses of several cycles of random length
7 Sine: replace wavesets  with sine waves of varying length and amplitude
8 Exaggerate: exaggerate the contour of wavesets, introducing harmonic distortion

PARAMETER
DIST_EXAG (Mode 8): Power factor exaggerating the contour of the waveform
  Range: 0.0025 to 40 (Full range: 0.000002 to 40) 


[102]  CycEnvelope
CYCENVELOPE (CDP: distort envelope)

CycEnvelope imposes an envelope (which can be user-defined) over groups of wavesets (pseudo-cycles). With large groups (eg >100) this gives an audible amplitude modulation - eg. try a group of 150 with a rising and falling envelope. Similarly with small groups, the modulation creates its own resonance, giving a distorted sound.

MODES
1 Attack envelope: rising envelope shape, linear if EXPONENT is not chosen
2 Decay envelope: falling envelope shape, linear if EXPONENT is not chosen
3 Troughed envelope: rising and falling envelope shape, linear if EXPONENT is not chosen
4 User-defined envelope: uses envelope breakpoint file (ENVEL) of time-amplitude pairs; the envelope length is defined by CYCLES (the group size)

PARAMETERS
ENVEL (Mode 4): Breakpoint file of Time-Amplitude pairs; the time-values are proportional, as the wavelength is defined by the group size (CYCLES)
CYCLES (all modes): group size -- number of wavesets (pseudo-wavecycles) in each group (T-V)
  Range: 1-1000
(MIN_LEVEL)(Modes 1-2)/MIN_LEVEL (Mode 3): the minimum level or depth of the envelope trough (T-V). Optional in Modes 1/2, mandatory in Mode 3. 
  Range: 0 [deepest trough] to 1 (shallowest trough), Default 0 

[1021] Pulsed
PULSED (CDP: distort pulsed)

PULSED, like SHUDDER and TREMOLO, produces a cyclic amplitude variation. Pulsed offers the greatest control of the three functions.

PULSENV defines an envelope shape for the impulse (TIME and AMP) and any pitch transposition within it. (Switch off AutoScale Breaks before using this function, as you do not want the pusle to be the length of the whole soundfile!)  START and DURATION define the start and end points of the effect, respectively, while FREQ (randomly varied by FREQRAND) sets the speed of pulse. TIMERAND randomizes the time-positions of the pulse's peaks and troughs from one impulse to another; AMPRAND does likewise for its amplitude peaks; and TRANSP, varied by TRANPSRAND, similarly sets a transposition contour within the impulse.

Cycles are imposed on the file (Mode 1), while in Mode 2 a wavecycle segment is used (defined by zero-crossings like the wavesets in the DISTORT suite): CYCLETIME sets the length of the segment. (A similar Mode 3, counting the length of the segment in numbers of cycles, is currently not implemented in Soundshaper.)

MODES
 1 Impose pulses: Impose series of impulses onto the sound. 
 2 Wavecycle segment: grabs a segment of wavecycles as the sound inside the impulses.

PARAMETERS
PULSENV: compulsory breakpoint file of time - amp, , defining shape of pulse.
  Range: time - 0- filelength secs; normally short enough to allow repetitions
START: Start time of the effect
  Range: 0-filelength secs
DURATION: Length of time the impulses continue
  Range: 0-filelength secs, >START
FREQ: Rate of impulses per second 
  Range: 0.1 - 50 Hz
FREQRAND: Amount of random variation of impulse frequency
  Range 0-12 semitones
TIMERAND: Randomize relative time-positions of amp peaks and troughs
  Range: 0-1
AMPRAND: Randomize amplitude peaks from impulse to impulse
  Range: 0-1
CYCLETIME (Mode 2): duration of segment to repeat as an impulse
  Range: 0.001 to 4
TRANSP: Transposition contour inside each impulse, in time - semitones
  Range: time - 0- filelength secs (but time is scaled internally to impulse length)  
TRANSPRAND: Randomize transposition contour from impulse to impulse
  Range: 0-1

OPTIONS
 Keep start: keep start of sound before impulses begin (default: discard start)
 Keep end: keep sound after impulses finish (default: discard end) 

[103]  CycAverage
CYCAVERAGE (CDP: distort average) 

CycAverage averages the waveshape over a number of wavesets (pseudo-cycles). In a melodic passage, this averages the melody too, creating an unpredictable sequence of pitches, which could be analysed (see pitch data section) and applied to other processes.

PARAMETERS
CYCLES: group size -- number of wavesets (pseudo-wavecycles) in each group (T-V)
  Range: 2-32767
WAVELEN: Maximum permissible wavelength. Although apparently optional, this is pre-selected at the default value of 0.5
  Range: 0.0004 to 1.0 secs. (Actual minimum is 0.000363) Default 0.5
SKIP: number of cycles to skip at start
  Range: 0-10000 (Full range: 0-32767)

[104]  CycOmit
CycOmit (CDP: distort omit) 

CycOmit omits a proportion of wavesets (pseudo-cycles) out of a specified group size and substitutes silence. Note that 60 out of 180 is NOT the same as 1 out of 3: a group of 180 cycles is a substantially different chunk size from 3! A small group size lowers the pitch in a gritty way; a larger one audibly granulates the sound.

PARAMETERS
OMIT: number (A) to omit out of group size (B) (T-V)
  Range: 1-1000 (Full range: 1-32767; must be less than group size (B)
OUT_OF: the group size (B) - omit A out every B cycles, where A < B 
  Range: 2-1000 (Full range: 2-32767) 

[1041] CycOmit
CYCOMIT (Wavesets menu) merges four CDP functions - distort omit, replace, delete and telescope - into a single parameter page.
All "modes" remove or replace some pseudao-cycles in each group

 Mode 1 Omit: removes a proportion of wavesets (pseudo-cycles) out of a specified group size and substitutes silence. 
Note that 60 out of 180 is NOT the same as 1 out of 3: a group of 180 cycles is a substantially different chunk size from 3! A small group size lowers the pitch in a gritty way; a larger one audibly granulates the sound.
 Mode 3 Replace: the strongest waveset (pseudo-cycle) in each group replaces all the others. This can create "random" melodies, even with large groups.
 Modes 2,4,5 Delete: time-shrinks the sound by deleting wavesets (pseudo-cycles), introducing distortion. 
 Mode 6 Telescope: another time-shrinking procedure, retaining one waveset (pseudo-cycle) per group. Even a group of 2 will halve the sound in a gritty way.

MODES
1. Replace with silence (CDP: distort omit) 
2. Delete quietest (CDP: distort delete 3)
3. Repeat loudest (timestretch) (CDP: distort replace)
4. Timeshrink: keep first   (CDP: distort delete 1)
5. Timeshrink: keep loudest (CDP: distort delete 2)
6  Timeshrink: keep 1 cycle (CDP: distort telescope)

PARAMETERS
PARAMETERS
OMIT: number (A) to omit out of group size (B) (T-V)
  Range: 1-1000 (Full range: 1-32767; must be less than group size (B)
GROUP SIZE: (B) - omit A out of every B cycles, where A < B 
  Range: 2-1000 (Full range: 2-32767)
CYCLES: group size -- number of wavesets (pseudo-wavecycles) in each group (T-V)
  Range: 2-5000 (Full range: 2-32767)
(SKIP): Number of wavesets (pseudo-cycles) to skip at start of file
  Range: 0-10000 (Full range: 0-32767) 

OPTION (Mode 6 telescope)
Telescope to the average cycle length; default is to the longest cycle in the group


[105]  CycMultiply
CYCMULTIPLY (CDP: distort multiply)

CycMultiply raises frequency by shortening/copying and inverting half-cycles. Only harmonic multipliers are allowed. This is not really a transposition function, though, unless the source waveform is very uniform.

PARAMETER
MULTIPLIER: "transposition" ratio (2=octave, 3=12th, 4=2 8ves, etc.)
  Range: 2-16 (whole number only)

OPTION
 SMOOTH: may reduce glitching

[1051] CycFreq
CYCFREQ (Wavesets menu) merges five CDP functions: distmore double, distort multiply, divide, harmonic and fractal. All of these deal with the "frequencies" found in pseudo-wavecycles.

Mode 1 MULTIPLY: raise frequency by shortening/copying and inverting half-cycles. Only harmonic multipliers are allowed. This is not really a transposition function, though, unless the source waveform is very uniform.
Mode 2 MULTIPLY - alternative method: much the same as Mode 1. Allows fractional multipliers, but only up to 4 x frequency. 
Mode 3 DIVIDE: pseudo-cycles are duplicated to lower the frequency by a proportion (2=8ve etc.). Only harmonic multipliers are allowed. Again, this is not really a transposition function, unless the source waveform is very uniform.
Mode 4 HARMONICS: uses a breakpoint textfile of harmonic-no.)/amplitude pairs (Range 0-1). Adds higher-frequency components to the sound. 
The added waveforms are multiples of the original. Pre-scale is recommended unless extreme distortion is desired.
Mode 5 FRACTALS: like Harmonics, this adds higher-frequency components to the sound. With Fractals, these are based on miniature copies of the waveform grafted on to itself. Pre-scale is recommended (e.g. 0.5) to avoid a clipped signal. 

MODES
1. Raise frequency (CDP: distort multiply)
2. Raise frequency - alternative method (CDP: distmore double)
2. Lower frequency (CDP: distort divide)
3. Add harmonics (CDP: distort harmonic)
4. Add fractals (CDP: distort fractal)

PARAMETERS
RATIO: "transposition" ratio (2=octave up/down, 3=12th up/down, 4=2 8ves up/down, etc.) 
  Range: 2-16 (whole number only)
HARMONICS: Text datafile of Harmonic-number/amplitude pairs
  Ranges: (hmc) 2-1024; (amp) 0-1
SCALING: Number of scaled-down copies (fractals) to make. (T-V)
  Range: 2-10000 (Full range: 2 to sample-rate/2)
LOUDNESS: Level of scaled copies relative to source (source-level = 1.0) (T-V)
  Range: 0.001 - 100 (Full range: 0.000031 to 32767)
(PRE_ATTEN): Pre-scale - attenuate source before processing to avoid clipping (optional but recommended)
 Range: 0.001-100 (Full range: 0.000002 to 200) 

[106]  CycDivide
CYCDIVIDE (CDP: distort divide) - LEGACY 

CycDivide: wavesets (pseudo-cycles) are duplicated to lower the frequency by a proportion (2=8ve etc.). Only harmonic multipliers are allowed. This is not really a transposition function, though, unless the source waveform is very uniform.

PARAMETER
DIVIDER: "transposition" ratio (2=octave down, 3=12th down, 4=2 8ves down, etc.) 
  Range: 2-16 (whole number only)

OPTION
 Interpolate waveforms to reduce glitching (recommended)

[107]  CycHarmonics
CYCHARMONICS (CDP: distort harmonic) - LEGACY

CycHarmonics, like CycFractals, adds higher-frequency components to the sound. With CycHarmonics, the added waveforms are multiples of the original, using a datafile of harmonic_number  amplitude pairs. CycHarmonics produces a less distorted effect than CycFractals, if a small number of harmonics of cut-down amplitude are used. In both cases, pre-scale is recommended (e.g. 0.5) to avoid a clipped signal.

PARAMETERS
HARMONICS: Text datafile of Harmonic-number/amplitude pairs
  Ranges: (hmc) 2-1024; (amp) 0-1
(PRE_ATTEN): Pre-scale - attenuate source before processing to avoid clipping (optional but recommended)
 Range: 0.001-100 (Full range: 0.000002 to 200)


[108]  CycFractal
CYCFRACTALS (CDP: distort fractal)  - LEGACY

CycFractals, like CycHarmonics, adds higher-frequency components to the sound. With CycFractals, these are based on miniature copies of the waveform grafted on to itself. Pre-scale is recommended (e.g. 0.5) to avoid a clipped signal. 

PARAMETERS
SCALING: Number of scaled-down copies (fractals) to make. (T-V)
  Range: 2-10000 (Full range: 2 to sample-rate/2)
LOUDNESS: Level of scaled copies relative to source (source-level = 1.0) (T-V)
  Range: 0.001 - 100 (Full range: 0.000031 to 32767)
(PRE_ATTEN): Pre-scale - attenuate source before processing to avoid clipping (optional but recommended)
 Range: 0.001-100 (Full range: 0.000031 to 32767)

[109]  CycReverse
CycReverse (CDP: distort reverse) 

CycReverse: each waveset (pseudo-cycle) or group of wavesets is reversed, otherwise the direction is forwards. Large groups give bigger reversed sections and less distortion.

PARAMETERS
CYCLES: group size -- number of wavesets (pseudo-wavecycles) in each group (T-V)
  Range: 1-5000 (Full range: 1-32767)

NOTE:
CycReverse has been grouped with a newer program, DISTREV, which also reverses groups of wavesets, though these are marked by given times, not numbers of wavecycles.

[1091]  DistRev - Provisional
DISTREV (CDP: distmore segsbkwd - Rel.8) - PROVISIONAL

DistRev reverses selected segments given in a datafile list of times (the only parameter). The times are paired into what are called Heads and Tails: a Head typically marks  a consonant onset in the source and a Tail its vowel continuation. (The principle can freely be applied to any sound, of course.) It is assumed that the first mark is at a Head segment. At least two pairs of time-values must be given. Although these times appear to be very precise, in practice it is very difficult to achieve a specific reversal.

There are nine modes giving various possible permutations of Heads and Tails. The program works with wavesets (psuedo-cycles based on zero-crossings), although this is not obvious in its operation.

MODES
1: Reverse Tails
2: Reverse Heads
3: Reverse Head+Tail pairs
4: Reverse Head & Tail+Head+Tail set
5: Reverse Head+Tail+Head+Tail set
6: Reverse Head & Tail+Head+Tail+Head+Tail set
7: Reverse Head+Tail+Head+Tail+Head+Tail set
8: Reverse Head & Tail+Head+Tail+Head+Tail+Head+Tail set
9: Reverse Head+Tail+Head+Tail+Head+Tail+Head+Tail set

TIMES: A list of times marking Head and Tail segments in the source
  Range: 0 to infile-length

NOTE
DISTREV is grouped with an earlier function, CYCREVERSE (CDP:distort reverse), which also reverses groups of wavecycles.

[110]  CycShuffle
CYCSHUFFLE (CDP: distort shuffle) 

CycShuffle: like Shuffle and GrnShuffle, a DOMAIN (source pattern) and IMAGE (shuffle pattern) dictate the shuffling of (groups of) wavesets (pseudo-cycles). With large groups this is an effective shuffling procedure. Type the DOMAIN and IMAGE into their respective text boxes. (Soundshaper addes the hyphen between them that the command line requires.)

PARAMETERS
DOMAIN: set of letters representing consecutive (groups of) wavesets (pseudo-wavecycles)
  Example: abcd   (set of four elements)
IMAGE: set of letters forming some permutation of the DOMAIN set
  Example: ddccba (in each set of four, play the 4th element twice, 3rd twice, 2nd once and 1st once)
(CYCLES): group size -- number of wavesets (pseudo-wavecycles) in each group. (Cycles are shuffled in groups.)
  Range: 1-5000 (Full range: 1-32767)
(SKIP): number of cycles to skip at start
  Range: 0-10000 (Full range: 0-32767)

NOTE
See also SHUFFLE (shuffles spectral windows) and GRNSHUFFLE (shuffles grains of sound)

[1101] Distzig R8 Prov
DISTZIG (CDP: distmore segszig - Rel.8) - PROVISIONAL

DISTZIG applies the idea of zig-zagging within a soundfile to wavesets. Zig-zagging (see esp. ZIGZAG) involves playing a segment forwards and then backwards. Like other processes within the DISTMORE program (DISTREV and DISTBRIGHT), this function requires a list of times that are assumed to represent paired Heads and Tails of vocal sounds: a Head typically marks a consonant onset in the source and a Tail its vowel continuation. At least two pairs of time-values must be given and the first marker is taken to be a Head segment. 

REPEATS sets the number of repeats required (including the reversal). DURATION (Mode 3 only) sets the outfile-length, which ranges from REPEATS+1 times the source length to 64 x source-length. (This variable range is built into Soundshaper.) There are two optional parameters: SHRINK TO allows the zigzags to shrink to a minimum size, while PROPORTION optionally allows less than 100% of the tail to be used.

MODES
1. Zig-zag across tail-specified segments
2. Zig-zag across whole file: this plays the whole file forwards, then backwards, REPEATS times
3. Zog-zag across soundfile, using specified portion of tail (PROPN)

PARAMETERS
TIMES (mode 1): text file list of times in source marking Heads and Tails
  Range: 0 to soundfile-length
REPEATS: number of repetitions (including reversal of segment)
  Range: 1 to 64 (T-V)
DURATION (mode 3): outfile-length
  Range: REPEATS+1 x file-length to 64 x file-length.
(SHRINK TO): minimum size for zig-zags to contract to
  Range: >31 mS to 500mS
(PROPORTION) of tail to use (default all); length must be >SHRINK TO
  Range: 0 to 1 (Mode 1: length determined by segments ?)  (T-V)

OPTION
 Shrink logarithmically (default: linearly).

NOTE:
None of the parameters specifically refers to wavesets, though as part of DISTMORE, they are presumably involved somehow.


[1102] Scramble R8 Prov.
CYCSCRAMBLE - (CDP: scramble Rel. 8 PROVISIONAL)

As the name suggests, this process scrambles the waveset order: randomly and by size and level. The fourteen modes set out the various possibilities. Some modes use a CUTS datafile of times to define the segments.  These can be set to the start of each segment that might be re-positioned. There is scope for optional random transposition and attenuation. 

MODES:
RANDOM
1.  Random order: scramble the order of wavesets randomly
2.  Permutated random: permuted random order  - all are used before any are re-used

BY SIZE - in order of:
3.  Increasing size (falling pitch)
4.  Dcreasing size (rising pitch)
5.  Increasing size in each segment
6.  Decreasing size in each segment
7.  Increasing then decreasing size
8.  Decreasing then increasing size 

BY LEVEL - in order of:
9.  Increasing level
10. Decreasing level
11. Increasing level in each segment
12. Decreasing level in each segment
13. Inreasing then decreasing level
14. Decreasing then increasing level


PARAMETERS
OUTLENGTH (modes 1,2): Duration of scrambled output 
  Range: 1 to 7200 secs
CUTS (modes 5-8, 11-14): textfile list of (increasing) times in source: process in each separate segment 
  Range: >0 to file length
SEED: same seed number with same random parameters gives same output 
  Range: 0 to 256
(CYCLES) Number of wavesets in each group to be scrambled 
  Range: 1-256
(TRANSP): range of any random transposition of wavesets
  Range 0 to 12 semitones  
(ATTEN): Range of any random attenuation of wavesets 
  Range: 0 to 1

NOTE
One of many manglers within CDP, all producting much the same sort of random or semi-random jumble. 
The Soundshaper name-prefix CYC is to distinguish it from the existing SCRAMBLE (CDP: extend scramble) - if you can hear the difference!


[111]  CycRepeat
CYCREPEAT (CDP: distort repeat) - LEGACY

CycRepeat repeats (groups of) wavesets (pseudo-cycles) to timestretch the sound. With small groups, the rate of repetition creates a buzzy resonance, lasting as long as the number of repeats. CycRepeat can produce long, grainy sounds; the process works well with large groupsizes, e.g. 100-200.

MODES
1 Timestretch (CDP: distort repeat): duplicate groups of cycles and timestretch the sound
2 No timestretch (CDP: distort repeat2): duplicate groups of cycles without timestretching
3 Frequency limit (CDP: distort replim): duplicate cycles below a specified frequency limit and timestretch

PARAMETERS
REPEAT: number of times to repeat each group of wavesets (pseudo-cycles)
  Range: 2-1000 (Full range: 2-32767)
(CYCLES): group size -- number of wavesets (pseudo-wavecycles) in each group (T-V)
  Range: 1-5000 (Full range: 1-32767)
(SKIP): Number of wavesets (pseudo-cycles) to skip at start of file
  Range: 0-10000 (Full range: 0-32767)
(HIGH LIMIT) (Mode 3): omit cycles above this frequency
  Range: 440-20000, default 1000 (Full range: 440-22050)


[1111] CycRepeat2 
CycRepeat2: Legacy function, now Mode 2 of CycRepeat. Please use that instead.
[1112] CycReptLim
CycReptLim: Legacy function, now Mode 3 of CycRepeat. Please use that instead.

[1113] CycRepeat
CYCREPEAT merges several CDP functions that repeat (groups of) wavesets (pseudo-cycles). The first two modes replace earlier functions (distort repeat/2) which are almost identical, though the newer version has an extra parameter (SPLICE) and performs better in Mode 2.

CycRepeat repeats (groups of) wavesets (pseudo-cycles) to timestretch the sound. With small groups, the rate of repetition creates a buzzy resonance, lasting as long as the number of repeats. CycRepeat can produce long, grainy sounds; the process works well with large groupsizes, e.g. 100-200.

Modes 1 and 3 timestretch the sound by repeating segments, while Mode 2 simply repeats segments without stretching. Mode 4 repeats each waveset (pseudo-cycle) a given number of times and interpolates between them. Modes 5 and 6 (CDP: distrep) are an updated version of Modes 1 and 2, offering splices between the waveset groups.

MODES
1 Timestretch: repeat groups of cycles and timestretch the sound
2 Repeat only: repeat groups of cycles without timestretching
3 Frequency limit (CDP: distort replim): repeat cycles below a specified frequency limit and timestretch
4 Timestretch and interpolate
5 Timestretch with splice: as Mode 1 but with added splice between groups of cycles
6 Repeat only with splice: as Mode 2 but with added splice between groups of cycles

PARAMETERS
REPEAT: number of times to repeat each group of wavesets (pseudo-cycles)
  Range: 2-1000 (Full range: 2-32767)
CYCLES: group size -- number of wavesets (pseudo-wavecycles) in each group (T-V)
  Range: 1-5000 (Full range: 1-32767)
(SKIP): Number of wavesets (pseudo-cycles) to skip at start of file
  Range: 0-10000 (Full range: 0-32767)
(FREQ LIMIT) (Mode 3): omit cycles above this frequency
  Range: 440-20000, default 1000 (Full range: 440-22050)
(SPLICE) - Modes 5 & 6: Length of splice slope
  Range: 0- 50 mS, default 15mS

[1115] Splinter R8 Prov.
SPLINTER (CDP Rel. 8 - PROVISIONAL)

SPLINTER cuts a short segment from the soundfile and repeats it as pulses, shrinking and optionally transposing it on each repetition. This pulsed portion is either followed by the reset of the soundfile (Modes 1,3) or precedes it (Modes 2,4). Alternatively, the option NOT to mix any of the source will just give the pulsed segment.  

The segment length is a group of pseudo-cycles (CYCLES), so may be a bit hard to predict. SHRINK and BEYOND determine the number of pulses - those that are shrunk and those after the shrinkage, while EXTRA can extend this number further. PULSE1 and PULSE2 set the speed of repetition, which can be arranged so that the repetitions speed up or slow down; if PULSE1 is zero, the speed is taken from the group length in CYCLES. The speed of pulse and shrinkage can be skewed by PULSECURVE and SHRINCURVE, respectively. 

Modes 1 and 2 gradually change pitch with each repetition; Modes 3 and 4 do not. FREQ optionally sets a goal frequency to reach. In this context, the group of cycles has a notional 'frequency' (see also processes within WAVESETS | FREQUENCY); if this exceeds FREQ, a CDP Error is raised.

Optional parameters include DURATION (modes 3 and 4), which sets the length of maximally shrunk splinters; PULSERAND and SHRINKRAND, which randomize pulse and shrink timing.

MODES
1. Lead in and change pitch: pulses precedes a portion of the source
2. Emerge and change: pulses follow a portion of the source
3. Lead in only: no pitch change; splinters repeat before merging with the original at the given time
4. Emerge only : no pitch change; splinters occur after the given time

PARAMETERS
TARGET: time in source immediately before selected waveset group
  Range: 0 to file-length secs
CYCLES: number of wavesets in group
  Range: 1 to 256, must be < FREQ in 'length' (if FREQ active)
SHRINK: no. of repetitions that are shrunk
  Range: 2 to 256
BEYOND: no. of maximally shrunk splinters beyond beyond SHRINK
  Range: 0 to 256
PULSE1: speed of repetition at start of repetitions
  Range: 0 to 50Hz (if 0, speed is derived from the CYCLE length)
PULSE2: speed of repetition at end of repetitions
  Range: 0 to 50Hz (if zero, PULSE2 = lse1-speed 1.
(EXTRA): number of extra pulses after SHRINK+BEYOND
  Range: 1 to 1000
(SHRINK CURVE): rate of shrinkage 
  Range: 0.1 to 10; 1=linear; >1 contracts quicker near original waveset; <1 slower
(PULSE CURVE): rate of pulse speed 
 Range: 0.1 to 10; 1=linear; >1 accel quicker near original waveset; <1 slower
(FREQ): approx. frequency of maximally-shrunk splinters 
  Range: 1kHz to Nyquist/2; default: c.6kHz
(DURATION Modes 3,4): Approximate length of maximally shrunk splinters
  Range: 5 to 50 mS
(PULSE-RAND): randomizes pulse timing
  Range: 0 to 1 (T-V)
(SHRINK-RAND): randomizes pulse shrinkage 
  Range: 0 to 1 (T-V)

OPTIONS
 Mix all source into the output; default: use source only where there are no splinters
OR
 Mix no source: do not include any source; default: use source only where there are no splinters
  This option may be helpful to defeat out-of-memory 'errors'


NOTES:
The main feature of SPLINTER is simply a number of repeating pulsed segments; the wide range of parameters control these quite effectively. The process is quite like PULSER, which can also vary its speed of pulses and has a better control of pitch. 

It seems quite common for the process to run out of memory; this may be helped by increasing CDP MEMORY SIZE in SETTINGS | Settings tab (t.b.c. not checked yet). Selecting "Mix no source" seems to cure the problem and some of the source can always be spliced on or mixed in afterwards.

[1115] Distortt R8 Prov.
DISTORTT (CDP Rel. 8 - PROVISIONAL) - Repeat wavesets within given duration

DISTORTT is a variant of CYCREPEAT (CDP: distort repeat) and DISTREP. In this case, the outfile length is specified directly, rather than as a number of wavesets.

PARAMETERS
REPEATS: Number of times to repeat each group of cycles (T-V)
  (Range: 2-32767)
CYCLES: Number of wavesets in each group 
  (Range: 1-256)
SKIP TIME: Time to skip at start before repeats 
  (Range: 0-file-length mS)
DURATION: Length of outfile required
  (Range: infile-length to 10 x this - secs)

OPTION
 Telescope to fit infile length: skip wavesets to fit the required outfile length


NOTE: The present names and order of parameters have been chosen for compatibility with other distort-repeat functions.  
The CDP usage has slightly different parameter names and presents them in a different order.




[112]  CycInterp
CYCINTERP (CDP: distort interpolate)  - LEGACY - now part of CycRepeat.

CycInterp repeats each waveset (pseudo-cycle) a given number of times and interpolates between them; you might expect this to be a time-stretching function (and the outfile is certainly longer), but it produces a seriously "wierd" output.

PARAMETERS
REPEAT: number of times to repeat each group of wavesets (pseudo-cycles)
  Range: 2-1000 (Full range: 2-32767)
(SKIP): Number of wavesets (pseudo-cycles) to skip at start of file
  Range: 0-10000 (Full range: 0-32767)

[1121] DistMark
DISTMARK (CDP Rel 8 - PROVISIONAL)

DISTMARK interpolates between wavesets at marked times (TIMES textfile). Mode 2 interpolates within alternate marked blocks. UNIT LENGTH sets the approximate size of the waveset group to find. 
Setting this to 200mS reveals that the process produces a stream of short repeated segments - presumably interpolating between them. There is an optional timestretch multiplier STRETCH (which tends to run out of memory). If the unit length is short (e.g. 20mS), the effect is more like synthesis, or LOOP with a short progression time, and typically with a rather buzzy quality.

Note that the unit length must be less than 1/2 the minimum step in the TIMES file. If UNIT LENGTH is too high and infringes this rule, it produces a CDP Error "Invalid Data".

Not all of the soundfile may be used, but the rest of it may be added on at the end (OPTION: add original tail). The other option - flip phase - seems to reverse some segments (though this may be a mis-hearing).

MODES
1. Interpolate between waveset groups at marked points
2. Interpolate within alternate marked blocks

PARAMETERS
TIMES: text file list of times to find waveset groups
  Range: 0 to file-length
UNIT LENGTH; aprrox. size of waveset group to find - must be < 1/2 minimum step in TIMES
  Range: 0.5 to 1000mS (T-V)
(STRETCH): multiplier -  time-stretch distances between marks in producing output
  Range: 1 to 256; may produce a memory error
(RAND): randomize the duration of interpolated wavesets
  Range: 0 to 1

OPTIONS
 Flip phase of alternate wavesets (seems to do more than just alter phase...t.b.c.)
 Add original tail: add the remaining tail of the source sound

NOTES:
 Soundshaper doesn't currently error-check the unit-length against time-steps.
 Some times appear to produce the unhelpful CDP error "INVALID DATA", even when Unit-Length clearly falls within legal limits.


[113]  CycDelete
CYCDELETE (CDP: distort delete) 

CycDelete time-shrinks the sound by deleting wavesets (pseudo-cycles), introducing distortion.

MODES
1 Keep first: keep the first cycle only in each group
2 Keep loudest: keep the strongest cycles only in each group
3 Delete quietest: delete the weakest cycle in each group

PARAMETERS
CYCLES: group size -- number of wavesets (pseudo-wavecycles) in each group (T-V)
  Range: 2-5000 (Full range: 2-32767)
(SKIP): Number of wavesets (pseudo-cycles) to skip at start of file
  Range: 0-10000 (Full range: 0-32767)


[114]  CycReplace
CYCREPLACE (CDP: distort replace)

CycReplace: the strongest waveset (pseudo-cycle) in each group replaces all the others: this creates "random" melodies, even with large groups.

PARAMETERS
CYCLES: group size -- number of wavesets (pseudo-wavecycles) in each group (T-V)
  Range: 2-5000 (Full range: 2-32767)
(SKIP): Number of wavesets (pseudo-cycles) to skip at start of file
  Range: 0-10000 (Full range: 0-32767)

[115]  CycTelescope
CYCTELESCOPE (CDP: distort telescope)

CycTelescope is another time-shrinking procedure, retaining one waveset (pseudo-cycle) per group. Even a group of 2 will halve the sound in a gritty way.

PARAMETERS
CYCLES: group size -- number of wavesets (pseudo-wavecycles) in each group (T-V)
  Range: 2-5000 (Full range: 2-32767)
(SKIP): Number of wavesets (pseudo-cycles) to skip at start of file
  Range: 0-10000 (Full range: 0-32767)

OPTION
 Average Cycle Length: telescope the group to the average cycle-length. Default: telescope to the longest cycle in the group.

[1151] DistShift
DISTSHIFT (CDP: Rel. 8- PROVISIONAL)

DISTSHIFT shifts alternate wavesets (pseudo-wavecyles) in time or swaps them. The time-shift is expressed as a number of half-cycles, which can vary from source to source. Large group sizes create fairly random and radical exchanges of material.

MODES
1. Shift forward alternate groups of 1/2-wavecycle groups by SHIFT waveset groups
2. Swap alternate groups of 1/2-wavecycle groups

PARAMETERS
GROUPSIZE: 1 = 0 + 1/2 wavesets; 2 = 1 + 1/2 wavesets;  3 = 2 + 1/2 wavesets, etc. (Range: 1 to 32767)
SHIFT: move alternate groups by SHIFT wavesets: a shift beyond the end wraps round to zero
  Range: 1 to 32767 

NOTE:
Wavesets are pseudo-wavecycles based on zero-crossings, which may or may not match actual wave cycles. The reference here is to 1/2-cycles: measured from one zero-crossing to the next.

[116]  CycFilter
CYCFILTER (CDP: distort filter)

CycFilter: the "filter" idea is to delete wavesets (pseudo-wavecycles) whose wavelength corresponds to a frequency in the chosen band. As waveset cycles are rarely full waveforms, the result is usually another kind of grittiness, rather than a traditional filtering effect.

MODES
1 High-pass: time-shrink by deleting wavesets lower than FREQ
2 Low-pass:  time-shrink by deleting wavesets higher than FREQ
3 Band-pass: time-shrink by deleting wavesets outside frequency band

PARAMETERS
FREQ: Cut-off frequency: delete above this for low-pass (Mode 2), otherwise below it (Modes 1 and 3).
  Range: 10-20000 Hz. (Full range: 10-22050)
HIGH FREQ (Mode 3): Upper limit of frequency band for band-pass (Mode 3). Must be < FREQ
  Range: 10-20000 Hz. (Full range: 10-22050)
(SKIP): Number of wavesets (pseudo-cycles) to skip at start of file
  Range: 0-10000 (Full range: 0-32767)

[1161] DistBright - PROVISIONAL
DISTBRIGHT (CDP: distmore bright Rel. 8 - PROVISIONAL_

DISTBRIGHT is one of many processes using wavesets - pseudo-cycles based on zero-crossings. In this process, it re-orders sounds based on the average zero-crossing rate. 
Segments are selected from datafile list of times. These are paired into what are called Heads and Tails: a Head is taken to mark a 'consonant' onset in the source and a Tail its 'vowel' continuation. It is assumed that the first mark is at a Head segment. At least two pairs of time-values must be given.  The only other parameter alters the splice length.

MODES
1. Segments cut from Heads and Tails, with size approximately equal to Heads.
2.  Segments cut from Heads and Tails as defined by TIMES list.
3. Segments cut from Tails only.


PARAMETERS
TIMES: A list of times in the source sound, marking (paired) Heads and Tails.
       It is assumed that the first mark is at a Head segment.
  Range: 0 to file-length (secs)
(SPLICE) Length of splice in mS
  Range: 2 to 15 mS

OPTION:
 Output in decreasing order of brightness. Default: increasing order.

NOTE:
The process can be an effective way of re-ordering the elements in a sound. It is useful for the list of times to match the onset of events in the soundfile. For speech, this would normally be the start of each syllable; in a melodic sequence, the start of each note; for drumming, the start of each beat or drumstroke, etc. The program then successfully re-orders the segments, splicing them together. 


[117]  CycInterl
CYCINTERL (CDP: distort interleave) 

CycInterl merges waveset cycles from two source sounds, producing distortion. There are no parameters.
If the same source sound is usedfor both sources, the result is a slightly distorted half-speed version.

PARAMETERS: none

[1171] CycImpose
CYCIMPOSE (CDP: distort impose)

CycImpose imposes the waveset cycles of one sound on another, introducing distortion. This function is somewhat like a time-domain vocoder, but without the subtlety. 

PARAMETERS: none

[1181] Overload
OVERLOAD (CDP: distort overload)

OVERLOAD: the idea is that the top of the waveform is clipped and optionally replaced with another frequency. This adds "bite" or obvious distortion to the sound.

MODES
1 Clip signal: slice top off signal above threshold CLIP LEVEL 
2 Clip and add waveform: clip top of signal and replace with waveform

PARAMETERS
CLIP LEVEL: threshold above which to clip the signal (re-normalised after clipping)
  Range: 0-1
DEPTH: depth of distortion pattern iposed on clipped waveform
  Range: 0-1
FREQ (Mode 2): frequency of waveform imposed on clipped portions of signal
  Range: 1-20000 (Full range: 0.01 to 22050)

NOTE:
This function has been moved from the Wavesets menu to UTILS. (since Soundshaper 5.08)


[118]  CycPchwarp
CYCPITCHWARP (CDP: distort pitch)

CycPitchwarp: wavesets (pseudo-cycles) are transposed randomly within a specified range (OCT VARY). Unless this is small, the effect is similar to an extreme vibrato, so small values (<1) are recommended initially when experimenting. With a small range, it introduces a randomized pitch variation, which can sometimes be very useful, and if the group size (CYCLELEN) is large (eg >100) there is a noticeable "stepping" effect. Time-varying CYCLELEN is also recommended by CDP. 

PARAMETERS
OCT VARY: maximum transposition up or down. (T-V)
  Range: >0.0 to 8.0 octaves (fractions permitted)
(CYCLELEN): groupsize - maximum number of cycles between the generation of transposition values (T-V)
  Range: 2-1000 (default 64) Full range: 2-32767


[1182] Distcuts
DISTCUTS (CDP: Rel. 8 - PROVISIONAL)

DISTCUTS is closely related to ENVCUTS, which extracts multiple segments of a specified length to separate mono files, each with a decay at the end. In DISTCUTS, segment lengths are set by groups of wavesets, defined by zero-crossings. The decay creates enveloped segments that do not end abruptly. An optional parameter LIMIT, sets a gate level above which the segment must rise to be accepted -- 70 (=-70dB) is a good value. 

In Mode 1 (as with ENVCUTS), segments are consecutive, wherease in Mode 2 they are separated by a step, which is the number of cycles from the start of one segment to the start of the next. 

The input file is natively mono, but Soundshaper can handle stereo and multichannel input. 

Soundshaper places outputs on or off the grid, as you specify. If on the grid, outputs are named from the current cell in columns (e.g. ~A_1.wav, ~B_1.wav etc.)
Mode 2 outputs may spill outside the patchgrid. The CDP off-grid naming is <outname>0.wav, <outname>1.wav, etc.

PARAMETERS
CYCLES: Number of pseudo-cycles defining the length of segment required. 
  Range: 1 to 1000, up to the number in the input file
CYCLESTEP (Mode 2): NUmber of cycles separating the start of a segment from the start of the previous segment
  Range: 1 to 1000, up to the number in the input file
EXP: the decay shape (1 is linear, <1 is shorter; >1 is longer)
LIMIT: the minimum level to accept
  Range: 0-96 dB (values are actually negative: 70 = -70dB)

NOTES
DISTCUTS is closely related to ENVCUTS, which cuts segments to a given length, also with a falling envelope.
This process may have uses in creating segments for TEXTURE, or for other creative mixes derived from the same material.


[1183] Distwarp 
DISTWARP (CDP: Rel. 8 - PROVISIONAL) - warp wavecycles by multiplier

DISTWARP warps by applying a multiplier, either to each sample or to groups of wavesets. It appears to emphasise amplitude (to be confirmed). In samplewise mode, it can produce a distinct pitch - especially towards the top of the WARP range - this can be varied over time. In waveset mode, the groups are accented and distorted.

MODES
1. Increment samplewise 
2. Increment wavesetwise

PARAMETERS
WARP: multiplier (T-V)
  Range: 0.001 to 0.1
WAVECNT (Mode 2): no. of wavesets in group (T-V)
  Range: 1.0 to 100


//--------------------------

[119]  Zigzag (legacy)
ZIGZAG (CDP: extend zigzag)

ZIGZAG : the soundfile is read alternately forwards and backwards, either randomly within limits (Mode 1) or using a list of times (TIMEFILE: Mode 2). 

In Mode 1, START and END togther define the time range in which the zigzag occurs. The time between successive zigzag timepoints is set between MINZIG and MAXZIG. DURATION sets the required outfile length. In Mode 2, the output is fully defined by a list of times to zigzag between; times should alternate between later and earlier points.  

MODES
1 Random zigzag: randomly select zigzag segments within specified range.
2 Specify times: specify zig-zag timepoints in TIMEFILE.

PARAMETERS
START: start time of zigzag range - zigzag somewhere between start and end. 
  Range: 0.0 to file-length
END: end time of zigzag range - zigzag somewhere between start and end. 
  Range: > START to file-length
DURATION: required outfile length 
  Range: >file-length to 32767 secs
MINZIG: Minimum acceptable time between successive zigzag timepoints 
  Range: 0.045 to file-length-0.03 secs
MAXZIG: maximum acceptable time between successive zigzag timepoints 
  Range: >MINZIG to file-length-0.03secs
(SPLICE): length of splice slope in milliseconds 
  Range: 1-500 msecs; default: 25ms
(SEED) If set, same number produces identical output on re-run. 
  Range: 0-32767; default 0 = random sequence is different every time
TIMEFILE (Mode 2 only): textfile of timepoints (in Infile) to zigzag between. 
  Range: 0 to file-length; each step must be > 3 x splice length.
  Timefile steps normally alternate between earlier and later times.

NOTES
Zig-zag is a good way of extending a sound (especially a short-lived percussive one), but beware of glitches, which can occur even with a SPLICE. Short backwards and forwards movements create a stuttering or repeated note effect. See also MchZig for a multi-channel version of ZigZag.

[1190]  Zigzag
ZIGZAG (CDP: extend zigzag and mchzig)

ZIGZAG : the soundfile is read alternately forwards and backwards, either randomly within limits (Modes 1,2) or using a list of times (TIMEFILE: Modes 3,4). 

In Modes 1 & 2, START and END togther define the time range in which the zigzag occurs. The time between successive zigzag timepoints is set between MINZIG and MAXZIG. DURATION sets the required outfile length. 
In Modes 3 & 4, the output is fully defined by a list of times to zigzag between; times should alternate between later and earlier points. 

In Modes 2 and 4 (multi-channel out), output is sent to a new channel at each 'zig' or 'zag'. (CDP: mchzig)

MODES
1   Random zigzag: randomly select zigzag segments within specified range.
2   Random zigzag (multichan): as Mode 1, but with segments distributed across the output channels 
3   Specify times: specify zig-zag timepoints in TIMEFILE.
4   Specify times (multichan): as Mode 3, but with segments distributed across the output channels 


PARAMETERS
START: start time of zigzag range - zigzag somewhere between start and end. 
  Range: 0.0 to file-length
END: end time of zigzag range - zigzag somewhere between start and end. 
  Range: > START to file-length
DURATION: required outfile length 
  Range: >file-length to 32767 secs
MINZIG: Minimum acceptable time between successive zigzag timepoints 
  Range: 0.045 to file-length-0.03 secs
MAXZIG: maximum acceptable time between successive zigzag timepoints 
  Range: >MINZIG to file-length-0.03secs
(SPLICE): length of splice slope in milliseconds 
  Range: 1-500 msecs; default: 25ms
(SEED) If set, same number produces identical output on re-run. 
  Range: 0-32767; default 0 = random sequence is different every time
TIMEFILE (Mode 2 only): textfile of timepoints (in Infile) to zigzag between. 
  Range: 0 to file-length; each step must be > 3 x splice length.
  Timefile steps normally alternate between earlier and later times.

NOTES
Zig-zag is a good way of extending a sound (especially a short-lived percussive one), but beware of glitches, which can occur even with a SPLICE. Short backwards and forwards movements create a stuttering or repeated note effect.

Note that Soundshaper can handle multi-channel input for Modes 1 and 3, but the segmentation stays within the same channel.

[1192] Constrict
CONSTRICT (CDP: constrict))

CONSTRICT constricts silences, i.e. it shortens zero-level sections in a sound. The only parameter sets the amount of constriction, where a higher value shortens the silences more. 

PARAMETERS
AMOUNT: shorten the duration of zero-level sections
  Range: 0-100 percent; default 50%


[1193] MchZig (legacy)
MCHZIG (CDP: mchzig)

MchZig is a multi-channel version of Zigzag: the soundfile is read alternately forwards and backwards, either randomly wtihin limits (Mode 1) or using a list of times (TIMEFILE: Mode 2). Output is sent to a new channel at each 'zig' or 'zag'.

MODES
1 Random zigzags: randomly select zigzag segments within specified range.
2 Specify times: Specify zig-zag timepoints in TIMEFILE.

PARAMETERS
START: start time of zigzag range - zigzag somewhere between start and end. 
  Range: 0.0 to file-length
END: start time of zigzag range - zigzag somewhere between start and end. 
  Range: > START to file-length
DUR: required outfile length 
  Range: >file-length to 32767 secs
MINZIG: Minimum acceptable time between successive zigzag timepoints 
  Range: 0.045 to file-length-0.03 secs
MAXZIG: maximum acceptable time between successive zigzag timepoints 
  Range: >MINZIG to file-length-0.03secs
(SPLICE): length of splice slope in milliseconds 
  Range: 1-500 msecs; default: 25ms
(SEED) If set, same number produces identical output on re-run. 
  Range: 0-32767; default 0 = random sequence is different every time
TIMEFILE: textfile of timepoints (in Infile) to zigzag between. 
  Range: 0 to file-length; each step must be > 3 x splice length.
Timefile steps normally alternate between earlier and later times.
OUTCHANS: (for mono to m-ch only): number of output chans 
  Range: 2-16

NOTES
The multi-channel output can be split into separate monos and processed further.

Input is natively MONO-only; however, Soundshaper can process Stereo or Multi-channel files. (Each channel of the input is split and processed separately, then interleaved after processing.)

[1191] BaktoBak
BAKTOBAK (CDP: baktobak)

BakToBak: a reversed copy of the soundfile is spliced on to and before the original. 

PARAMETERS
JOINTIME: Time in infile where join-cut to be made. Set to minimum to use the whole sound.  
  Range 0.01 to file-length.
SPLICE: Length of splice slope in milliseconds. 
  Range 0.01 to file-length.

[1194] Hover / Hover2 (R8)
HOVER (CDP: hover) and HOVER2 (CDP8 - PROVISIONAL)

HOVER (Mode 1) is like Zigzag, but hovers around a given time-point (LOCATION) at a given modulation frequency (MOD_FREQ). The width of the sample read is set by the frequency: at 44.1KHz sampling rate, 1Hz freq. reads +/- 22050 samples, 10Hz reads +/- 2205 samples.
The degree of variation of both MOD_FREQ and LOCATION can be randomized by FRQRAND and LOCRAND respectively.

Mode 2 (Hover2) moves through the file, zigzag reading it at a given frequency, reading back and forth from a zero-crossing,
then outputting same data inverted, to form symmetrical zero-centred waveforms at each read.

PARAMETERS
DURATION: Required Outfile length. 
  Range: >file-length to 32767 secs; T-V.
MOD_FREQ: Modulation frequency. Sample width @ 1Hz: +/-22050 samps; @ 10Hz: +/-2205
  Range: 1/(filelength*2) to 22050 Hz;  T-V.
LOCATION: time in source file from which to read forwards and backwards. 
  Range: 0-filelength. T-V times are OUTPUT times.
FRQRAND: degree of random variation of frequency. 
  Range: 0-1; T-V
SPLICE (Mode1): Length of splice slope. 
  Range: 0-100 ms; must be < 1/(freq * 2), e.g. <5 ms for 100 Hz. 

OPTIONS (Mode2 only - Hover2)
 Times in brkpt file: step between locations at times specified in any breakpoint file
 Normalise output: normalise the loudness of all wavecycles generated. 


[120]  Loop
LOOP (CDP: extend loop)

LOOP: a segment is looped round and round. The looping start point can advance by small steps, giving a kind of time-stretching. The segment is determined by LOOP_LENGTH and its initial starting point by START_TIME. The step advancement can be randomized within a time-frame set by SCATTER.
 
MODES
1 Advance to end: on each repetition, loop advances by STEP until the end of the file is reached.
2 Outfile length: length of output is specified by DURATION.
3 Number of loops: specify number of loops required in REPEATS.

OPTION: 
 Play from start of Infile even if looping starts later. NORMALLY SET.

PARAMETERS
START TIME (Mode 1): Time in infile at which looping process begins. 
  Range: (secs) 0 to file-length less 45ms.  START + LOOP_LENGTH cannot exceed the file-length.
DURATION (Mode 2): Length of outfile required. 
  Range: 0-32767 secs, shortened if looping reaches end of infile.
REPEATS (Mode 3): Number of loop repeats required (reduced if looping reaches end of infile).
  Range: 1 to 32767; Soundshaper's limit is 1000, but you can exceed this if filelength allows.
LOOP LENGTH: Length of looped segment. Very small lengths (<40ms) will give a resonance. 
Looplength must be > SPLICE (sometimes + a few ms).  Adjust SPLICE as necessary.
  Range: 0.022676 msecs (in practice 2ms) to file-length-30msecs.
STEP: amount of advance in infile from one loop to next. If same as LOOP LENGTH, there is no change to the sound. 
  Range: 0.022676 to file-length msecs.
SPLICE: Length of splice window. Set this if using low LOOP LENGTH, esp. 50ms or less. 
  Range: 1-5000 msecs; default 25msecs.
SCATTER: Make step-advance irregular, within this timeframe. 
  Range 0 to file-length msecs

[1201] Sampleseq
SAMPLESEQ (CDP: extend sequence)

SAMPLESEQ plays a sequence of a single sound sample using a text file(SAMPLESEQ) of  TIME TRANSPOSITION AMP. Transposition and Amplitude are relative to the level and pitch of the source sound. The whole sample is played each time: there is no duration field. ATTEN attenuates the input level as necessary.  

PARAMETERS
SAMPLESEQ: Datafile  - lines of TIME TRANSPOSITION AMPLITUDE; 1 line per note-event.
 Ranges: Time in seconds
         Transposition: -48 to + 48 semitones
         Amplitude: loudness multiplier: >1 louder <1 softer
Times must increase, but the samples may overlap. Semitone values may be fractional. Transposition is by speed of playback, which affects duration time.
(ATTEN): overall attenuation of the input sound, if the output would overload. 
  Range: 0-1, default: 1.0. 

NOTES
As a quick way of generating a timed gestural sound from one source, this function is useful, but for more extended sequences use SEQUENCE (CDP: sequence2), whose datafile can be created from a MIDI file using Soundshaper's MIDI-SEQ convertor. 

[1202] Sequencer
SEQUENCER (CDP: Sequence2) 

SEQUENCER plays a sequence of sounds, similar to a MIDI sequence. The SEQUENCE datafile (Soundshaper: *.seq) has MIDI-like fields, and Soundshaper's  MIDI-SEQ facility can convert a standard MIDI file into a SEQUENCE file. (Menu: Tools > MIDI to SEQ.)

At least two sources are required, but they can be the same file, or the second 'source' need not be used in the sequence. Sources must also have the same channel-count. Sounds are numbered in the order they were selected (as in the simpler sequence functions). 

An initial line specifies notional MIDI pitch values (0-127) for each source in turn (similar to some TEXTURE datafiles). The value 60 can be considered to represent 'original pitch' and the actual value in the pitch field is a transposition up or down from there (e.g. 72 is an 8ve higher, 48 an 8ve lower). However, you could set this initial value to anything: if you needed a multi-octave tranposition of a low sound, you could enter the original pitch as e.g. 24 and specify a pitch of 84 (5 8ves up).
 
The other fields are out-time, loudness and duration (but unfortunately not pan-position). Note that the transposition is by speed, so raising or lowering pitch will respectively shorten or lengthen the duration.  The duration value itself may shorten the sound, but cannot lengthen it beyond its length at the given transposition.  

PARAMETERS
SEQUENCE Text file (.seq) of: 
Line 1: assumed pitch (MIDI value) of each source, where 60 is original, e.g. 60 60 for two sources.
Lines 2, 3,... (1 line per note-event) of : SOUND-NO., TIME, PITCH, LEVEL, DURATION 
Fields (separated by space or tab, not commas): 
  SOUND-NO. - Sounds are numbered in the order they were selected. 
  TIME (secs)  - Times must increase on successive lines. To create chords increase time by tiny amount (times may have up to 6 decimal places).
  PITCH (MIDI 0-127, possibly fractional) relative to source pitch, e.g. if source = 60, then 64 is +4 semitones. Transposition is by speed of playback, which affects duration time.
  LEVEL (0-1), where 1 is original level; range can exceed 1 if required. 
  DURATION (secs). If shorter than original file (at that pitch), then sample is curtailed. If longer, the excess is ignored (a longer time cannot extend the sample). Samples may overlap by setting times and durations appropriately.
Note: the .seq file extension is not a requirement (.txt is equally suitable).
Example:
60 60 60
; snd   time  pch    level    dur
  1      0.0   63     0.5      2.5
  3      0.75  57     0.4      1.75
  2      1.0   71     0.7      4.0

ATTEN: overall attenuation of the input sound, if the output would overload. 
  Range: 0-1, default: 1.0.

NOTES
SEQUENCER is a very versatile tool, more useful than mixing for creating a musical gesture of several sound sources. The sequence can itself be part of another sequence in the next cell, or different sources can be used to mix sounds together.  Times, duration and pitches can be varied minutely by extracting the relevant column and processing it in GraphEdit or manually in the Datafile memo.
A MIDI file can be saved from notation programs such as MUSESCORE (free), SIBELIUS etc. and converted to a SEQ file in Soundshaper. (It is hoped to develop a batch process for this.)  

The one big gap in the sequence file is pan position or output channel, but sources can be pre-panned between any pair of channels, and the sequence itself could be partitioned by sound number and each partition realised over a different pair of channels.    

[1203] Repetitions
REPETITIONS (CDP: extend repetitions) 

REPETITIONS repeats a sound at given times. The whole sound is repeated, at the times specified in the datafile TIMES -- these are outfile times. If the next start time occurs before the end of a previous playing, the playings will overlap. 

PARAMETERS
TIMES (text datafile): list of (increasing) times in seconds at which the sound plays.
LEVEL: Level of output. 
  Range 0-1, T-V.

NOTES
The sound may be made to overlap: e.g. with a 5" infile and TIMES 0.0, 1.0, 3.0, the playings are 0-5", 1-6" and 3-8" in the outfile, whose total length is 8".  
For short sounds (e.g. percussion), this process is a quick way of repeating the sound with a precisely timed rhythm. (See also SEQUENCER, in which pitch and amplitude may also be varied.) 

[121]  Scramble
SCRAMBLE (CDP: extend scramble) 
SCRAMBLE is one of several programs which chop up a soundfile randomly (see also SHRED, RANDCHUNKS, RANDCUTS). Segments are selected from a wide variety of locations in the infile, jumping back and forth a great deal, and are then spliced together to make a file of the specified length. The segment size is set by MINSEG and MAXSEG (Mode 1) / SCATTER (Mode 2).

In Mode 1, segments may overlap. Because of the random selection, any bits of the file may be repeated quite quickly and some may not appear at all.
In Mode 2 the file is cut into random chunks which do not overlap. Apparently the entire file is used, once only, before the process starts to use the file again. (Try this with speech and see if you agree.)

MODES
1 Random chunks: Cut random chunks, which may overlap, from soundfile and splice end to end.
2 Segment: Cut whole soundfile into random chunks with no overlap and rearrange, repeat differently, etc.

OPTIONS
 Force start of outfile to be beginning of infile.
 Force end of outfile to be end of infile.

PARAMETERS
MINSEG: MODE 1 - Minimum segment size to cut (0.045 to file-length); MODE 2 - Average size   Range: 0.06 to <50% of filelength.
MAXSEG (Mode 1): Maximum segment size to cut. 
  Range: > MINSEG and < file-length.
SCATTER (Mode 2): Randomisation of chunk lengths. 
  Range: >= 0; not >file-length/MinSeg-length rounded down.
DURATION: Length of outfile required. 
  Range: 0.045 (and > MAXSEG in Mode 1) to 32767 secs.
SPLICE: Duration of splice. 
  Range: 1-5000 ms; default: 25ms.
SEED: If set, same number produces identical output on re-run. 
  Range: 0-32767; default 0 = random.
 sequence)

[122]  Iterate
ITERATE (CDP: extend iterate) 

ITERATE produces multiple repetitions, with the options of randomizing the delay time and varying pitch and amplitude on each repeat. (See also MchIter which is idential but scatters output across a number of channels.) 

MODES
1 Outfile length: Specify length of Outfile -- must be > Infile.
2 No. of repeats: Specify number of repetitions.

PARAMETERS
DURATION (Mode 1): Length of outfile required 
  Range: >Infile to 32767 secs
REPEATS (Mode 2):  Number of loop repeats required.
  Range: 1 to 32767
(DELAY): Average delay time between repeats. Normally set to less than the file-length, unless whole-sound discrete echoes are wanted.
 Range: 0.000002 to 100 secs. Default: Infile length
(RAND DELAY): Randomise delay times 
  Range 0 - 1, default 0
(PITCH SHIFT): Maximum random pitch shift up or down on each iteration. 
  Range 0 -12 semitones
(AMP CUT): Maximum random gain reduction on each iteration. 
  Range 0 - 1, default 0
(FADE): Rate of fade between iterations. Higher value is greater fade.
  Range 0 - 1, default 0
(GAIN): Overall gain
  Range 0 - 1, default 0. 0 = best guess for no distortion
(SEED): For randomized parameters, same seed-number produces identical output on re-run.
  Range: 0-32767; default 0: random sequence

[1221] FREEZEDELAY
FREEZEDELAY (CDP: extend freeze)

FREEZEDELAY iterates a segment (or the whole sound) to produce a freezing or chorus effect. 
The program iterates any given segment of the sound (START and END times) at a time-delay set by DELAY. You can specify an exact number of REPEATS (Mode 2), or an outfile length (Mode 1) -- the actual length may differ from that specified. If the DELAY time is shorter than the segment, the delays will overlap.

The DELAY time can be randomized by RAND_DELAY.  The pitch of the iterations can also be randomized, by PITCH_SHIFT. Both of these are required for a chorus effect. AMP_CUT specifies a randomized gain reduction on each iteration, required for a general echo effect.

The program can simulate echo effects, chorusing (use the whole sound) or 'freezing' of a portion by repetition. Outside the 'frozen' zone, the sound is played as normal, but see NOTES regarding pitch-shift. 
 
MODES
1 Specify outfile length: the actual length tends to be 
2 Specify no. of repeats

PARAMETERS
DURATION (Mode 1 only): Length of outfile required.
  Range:  >INFILE to 32767 secs. (Soundshaper max. is 1000+Infile, but this can be exceeded.)
REPEATS (Mode 2 only): Number of loop repeats required.
  Range: 1 to 32767
DELAY: Average delay time between repeats.
  Range 0.000002 to 100 secs; <= length of frozen segment. T-V.
RAND DELAY: Randomize delay times. 
  Range 0 - 1; default 0: no randomization. T-V.
PITCH SHIFT: Maximum random pitch shift up or down on each iteration. 
  Range: 0-12 semitones; T-V.
AMP CUT: Maximum random gain reduction on each iteration. 
  Range 0 - 1; default 0. T-V.
START: start time of frozen segment
  Range: 0 - file-length secs
END: end-time of frozen segment (> START)
  Range: 0 - file-length secs
GAIN: Overall signal gain
  Range: 0.25 to 4, default 1; T-V.
(SEED): Same seed-number produces identical output on re-run.
  Range 0-32767; default 0: random sequence.

NOTES
CHORUSING: In a delay processor, the chorus effect produces iterations of the input at a given delay time, ideally randomly variable and with possibly some pitch variation as well. FREEZEDELAY has exactly the right parameters for this: use the whole sound and small delays of about 0.01-0.03 secs (10-30 ms). Randomize delay times and pitch by a small amount.
GENERAL ECHO: this effect is evident when delays are about 80ms or more (e.g. in a railway station). The pitch would not change, but some randomization of delay time can simulate echoes of different lengths. Use a small number of delays, or more delays with higher AMP_CUT for a more reverberant effect.
FREEZE: extend a small or large portion by iteration, to any length, with either discrete echoes (>100ms) or reverb-time (<60ms) delays. (For genuine freezing of the sound, the spectral program FREEZE arguably gives better results, however.) The final iteration appears to be (the same as) the original one, even if heavy AMP-CUT has been used for the preceding repeats.
PITCH-SHIFT: Once the repeated section has finished, if the pitch has changed, it tends not to be restored (surely not the intention?).

[1222] Repeats
REPEATS (CDP: extend doublets) 

REPEATS provides a simple kind of repetition, dividing the sound into segments and repeating each a given number of times, in turn. (For example, instead of chunks A-B-C-D making up the sound, we might hear AAA-BBB-CCC-DDD.) The segments can be of equal length or can be time-varying.  This segmentation moves through the file, in the sense that when a segment has finished repeating, the next one begins; there is no overlap.

PARAMETERS
SEG DUR: Length of segments. 
  Range: 0.01 secs to file-length; T-V.
REPEATS: Number of repeats of each segment. 
  Range: 2-32.

NOTES
For SEG_DUR, a usable list of segments can be extracted as follows: suitable onsets times can be found for the left (times) column, e.g. using GATED ONSETS, and the differences between these may be calculated for the right (seg_length) column, e.g. using the Data-Editor (Math1 #7, Differences).
(Be careful to turn off Auto-Scale when re-editing!) 
The example file 'exciting.brk' illustrates this for the vocal clip 'Exciting.wav'.

It is possible to create a simple kind of timestretching by having a tiny SEG-DUR and setting REPEATS to the degree of stretch rquired (e.g. 5 or 10). However, LOOP does this better, as the segments overlap.

[1223] MchIter
MchIter 

MchIter produces multiple repetitions, with the options of randomizing the delay time and varying pitch and amplitude on each repeat. Same as ITERATE, but scatters output across a given number of channels. 

MODES
1 Outfile length: Specify length of Outfile -- must be > Infile.
2 No. of repeats: Specify number of repetitions.

PARAMETERS
DURATION (Mode 1): Length of outfile required 
  Range: >Infile to 32767 secs.
REPEATS (Mode 2):  Number of loop repeats required 
  Range: 1 to 32767
(DELAY): Average delay time between repeats.
Normally set: to something less than the file-length, unless whole-sound discrete echoes are wanted.
  Range: 0.000002 to 100 secs; default: infile-length
(RAND DELAY): Randomise delay times 
  Range: 0 - 1; default 0
(PITCH SHIFT): Maximum random pitch shift up or down on each iteration 
  Range: 0 -12 semitones
(AMP CUT): Maximum random gain reduction on each iteration. 
  Range 0 - 1; default 0
(FADE): Rate of fade between iterations; higher value is greater fade.
  Range 0 - 1; default 0
(GAIN): Overall gain 
  Range 0 - 1; default 0; 0 = best guess for no distortion
(SEED): For randomized parameters, same seed-number produces identical output on re-run.
  Range: 0-32767; default 0: random sequence
OUTCHANS: number of output channels. Output is distributed randomly across the channels. 
  Range: 2-16. 

NOTES
The random scattering of echoes over a number of channels opens up rhythmic possibilities within each channel (especially if the channels are subsequently split). If spread across stereo and using very low delay times, a pseudo stereo effect can be made from a mono file. 

[1224] ITERLINE
SUMMARY
ITERLINE is a variant of ITERATE, which produces multiple (possibly overlapping) repetitions. In ITERLINE, the iterations follow a "transposition line" of TIME TRANSPOSITION pairs. This line defines an overall pitch contour over the length of the output sound (where we might be pitch-wise at any given time), while the iterations, when they occur, are assigned to the appropriate transposition point on the line*. (The line is fully editable in Graph-Edit and its times are also subject to any auto-scaling of times.)

Mode 1 uses an interpolated transposition line, i.e. the file is a normal breakpoint file and any iteration occurring at a time between two time-points in TRANSPN, will have an intermediate transposition value. In Mode 2, STEP, the transpositions are step-wise (i.e. held from one time-point to the next), and all iterations will match the most recent of the defined transposition values. 
 
The overall output time is set by DURATION.  DELAY sets the delay time between iterations, randomized by RAND DELAY; PITCH SHIFT sets the degree of random pitch shift (away from the line); while AMP CUT sets the maximum gain reduction on each iteration (no reduction=0).

MODES
 1 Interpolate: transpositions interpolated between time-points
 2.Step: transpositions match that of most recent time-point

PARAMETERS
TRANSPN: datafile of TIME - TRANSPOSITION values
  Range: times are outfile times
	 transposition: -48 to +48 semitones (guess)
DURATION: Length of outfile required (approx.)
  Range: >Infile-length to 32767 secs
DELAY: Average delay time between repeats
  Range: 0.000002 to 100 secs (default: Infile length); Soundshaper 0.001 to 100 secs.
RAND_DELAY: Randomise delay times 
  Range 0 - 1; default 0
PITCH SHIFT: Maximum random pitch shift up or down (from transposition line) on each iteration.
  Range 0 -12 semitones
AMP CUT: Maximum random gain reduction on each iteration 
  Range 0 - 1; default 0
GAIN: Overall gain 
  Range 0 - 1; default 0; 0 produces maximum acceptable level.
SEED: Same seed-number produces identical output on rerun.
  Range: 0-32767; default 0: random sequence

OPTION
 Normalize output (max out level = max in level); use only with non-zero SEED.

NOTES
*Transposition line: imagine drawing a line of dots at regular intervals; one dot represents the start of each iteration. Instead of joining up the dots to make a line, the line here is already "drawn" by TRANSPN, and the iterations are simply placed on it at suitable time-intervals.

[1225] ITERLINEF *
As Iterline but requiring a specific input set of transpositions. No further information on this.

[123]  Drunk
SUMMARY
DRUNK (CDP: extend drunk) takes a 'random walk' (or 'drunken walk') through the soundfile reading segments and splicing them together. The segments are only read forwards, but begin from within a range around a given STARTTIME (or 'locus'). This STARTTIME can either remain static or can be time-varying, e.g. moving through the infile.

Once a segment is read, the program moves randomly to a new position in either direction: within the range and not more than STEP seconds from the previous STARTTIME, from where it starts the next read. The actual starting point (except for the first segment) is therefore STARTTIME+STEP.
 
Segments are read at CLOCK intervals, so this is in effect the segment size: a slower clock produces longer segments and vice-versa. (The segments are not constrained by the range.) RANDCLOCK randomizes the clock lengths.

Mode 2 offers a hold mechanism ('sober') whereby the input file continues to be read from where the read marker happens to be at the time. The hold-time is set between MINDRUNK and MAXDRUNK, while the 'sober' duration is set between LOSOBER and HISOBER. 

MODES
1 Drunken walk: Segments chosen randomly from within range either side of given position.
2 Sober at holds: Segments chosen randomly as in Mode 1 but plays soberly at holds

PARAMETERS
DURATION: Minimum length of output soundfile. 
  Range: 0-32767 secs. Set this first, so that other parameters can be checked against it.
STARTTIME (CDP: 'locus'): Time when drunken walk occurs; next start is STEP away from it. T-V: can move through the source (so that the actual start-time is the new START + STEP), move backwards, or jump about. Range: 0 to file-length secs. 
HALFRANGE (CDP: 'ambitus'): Half-length of the range within which the segment starts, the range being +/- HALFRANGE secs. Range: 0 to file-length secs. T-V.
STEP: Maximum random step between segment reads; next start-point is START+STEP. 
  Range: 0.002 to file-length secs; T-V.
CLOCK: (= segment size) segments are read at CLOCK intervals, e.g. 0.5" clock gives 0.5" segments. 
  Range: > splicelen x 2 secs, T-V.
MINDRUNK (Mode 2): Minimum no. of clockticks between sober plays. 
  Range: 1 - 32767; default 10; T-V.
MAXDRUNK (Mode 2): Maximum no. of clockticks between sober plays. 
  Range: 1 - 32767; default 10; T-V.
(SPLICE): Length of splice slope. 
  Range: 1.0 to filelength/2 ms Default: 15msecs
(RANDCLOCK): Randomize clock ticks (i.e. segment size) 
  Range: 0 to 1; default: 0; T-V.
(OVERLAP): degree of overlap of segments in output.
  Range: 0 to 0.99; default: 0; T-V
(LOSOBER): Minimum duration of sober plays. If >= file-length, sober plays to end of source.
  Range: >0- >infile secs; T-V.
(HISOBER): Max. duration of sober plays. If >= file-length, sober plays to end of source.
  Range: >0- >filelength secs; T-V.

NOTE: For T-V .brks in secs: left column is time in outfile, right column is time in infile.  

//----------------------
 
[124] [1243]  Simple
TEXTURE SIMPLE repeats the input sound(s) to create a texture of events ('notes'). The repetitions are at time-intervals set by the PACKING rate, as varied by SCATTER. Onset times may be further constrained by quantizing them to a minimum step (TIMEGRID).

'Note' durations are selected randomly, between MIN_DUR and MAX_DUR. Loudness is also chosen randomly, between MIN_GAIN and MAX_GAIN.

Pitch is chosen randomly within the overall range set by MIN_PITCH and MAX_PITCH. However, in Modes 1-4, the choice is constrained to the pitches specified in the NOTEDATA file. 

If more than one input is selected (optionally), the output sounds are selected randomly between FIRSTSND and LASTSND (both are time-varying).

The output is in stereo and POSITION and SPREAD optionally set the pan-position of events. Soundshaper can handle stereo or multi-channel input: the channels are treated separately and the outputs are mixed after processing. If the multi-params checkbox is checked on the parameter page, different parameter sets can be used for each channel.

MODES (common to all Texture processes)
 1 Single harmonic field*
 2 Changing harmonic fields*
 3 Single harmonic set*
 4 Changing harmonic sets*
 5 None (pitch chosen randomly within overall range)

* Harmonic sets (Modes 3/4) use only the specified pitches, while Harmonic fields (Modes 1/2) transpose these pitches across all octaves (within the overall range).  For Modes 2 and 4 (changing pitch sets/fields), give some 'notes' a later time than others. (These times would be ignored in Modes 1 and 3.)  

PARAMETERS
NOTEDATA: textfile of  -  
 Line 1: MIDI 'pitch' of each input sound (real or arbitrary; 60= original pitch) 
followed by
 pitch-set/field (Modes 1-4 only): 
 #N where N is number of following note-event lines  
 N lines, each of:
 time instr_no pitch amplitude duration
   time: secs. (Modes 2 & 4 only: changing pitch set/field) 
   instr_no: not in use  - set it to 1 
   pitch: MIDI 1-127  - specifies pitch in pitch set/field
   amp: n/a - set to 0
   dur: n/a - set to 0 

OUT DUR: Minimum duration of output sound
  Range: 0.01 to 300 secs (notional limit)
PACKING: average time between event onsets  T-V
  Range: 0-10 
SCATTER: randomisation of event onsets T-V 
  Range: 0 - 10
TIMEGRID: minimum step in quantised timegrid T-V
  Range: 0-1000 ms. Default 0
FIRSTSND: First sound to use, of infile sounds; set to 1 if only 1 input. T-V
  Range: 1-no.of input sounds; less than or equal to LASTSND
LASTSND: Last sound to use, of infile sounds; set to 1 if only 1 input. T-V
  Range: 1-no.of sounds;  greater than or equal to FIRSTSND
MIN GAIN: Minimum level of input events  T-V
  Range: 1-127 (MIDI amp. values); default 64
MAX GAIN: Maximum level of input events  T-V
   Range: 1-127 (MIDI amp. values); default 64
MIN DUR: Minimum duration of events  T-V
  Range: 0.016-32767 (secs); less than or equal to MAX DUR
MAX DUR: Maximum duration of events  T-V
  Range: 0.016-32767 (secs); greater than or equal to MIN DUR
MIN PITCH: Minimum pitch   T-V  
  Range: MIDI 1-127, Mid-C=60, fractions allowed; less than or equal to MAX PITCH
MAX PITCH: Maximum pitch - Min pitch   T-V
  Range: MIDI 1-127, Mid-C=60, fractions allowed; greater than or equal to MIN PITCH
OMIT: (NEW IN CDP8) 1 in OMIT events are omitted - i.e. fewer omitted as value increases  T-V
  Range: 0-64; 0 and 64 - no events omitted (use 0 for equivalent of previous versions)

 Optional parameters common to all Texture processes:
(ATTEN): Overall attenuation of the output. Often needed to avoid overflow. T-V
  Range: 0.00002-1
(POSITION): Central pan position of output sound.  T-V
  Range: 0 Left to 1 Right; default 0.5 Central; see SPREAD.
(SPREAD): Spatial spread of texture events. T-V
  Range: 0-1;  0: Central-position only to 1: full-spread.
(SEED): Same seed-no produces same output on re-run
  Range: 0-1; default 0: differs each time

OPTIONS
 Whole Input: play all of input-sound(s), ignoring duration values 
 Cycle round all input sounds in order
 Permutate order of input sounds to cycle (only if Cycle option also chosen) 

NOTES
Examples of Notedata files:

Ex1 - Mode 5, single input
  60

Ex2 - Modes 1/3; two inputs
60 60
#4
0 1 60 64 0
0 1 67 64 0
0 1 72 64 0

Ex3 - Modes 2/4, set/field changes at time 4.0"; two inputs
60 60
#8
0 1 60 64 0
0 1 67 64 0
0 1 72 64 0
0 1 76 64 0
4 1 61 64 0
4 1 68 64 0
4 1 71 64 0
4 1 73 64 0

For further details on NOTEDATA files, see supplied file <User-folder>\Simple\SIMPLEReadMe.txt.
CDP examples are supplied as presets. Very detailed discussion also in CDP Help and Texture workshop.

N.B.. RUNNING TEXTURE SIMPLE PATCHES MADE BEFORE CDP RELEASE 8 (2023)
CDP8 introduces the compulsory OMIT parameter. Presets and tutorial examples have been altered to match.
Previous Soundshaper patches will still work, but only if your texture.exe is the Release 7.1 version 
 Rename the Rel8 texture.exe to (e.g.) textureR8.exe 
 Renamed the supplied Release 7.1 vn  - textureR71.exe - to texture.exe
 When finished, swap the names back again
 The older Texture Simple parameters are stil available under the Legacy tab.
  This means you can retrieve your old parameters  - File | Save Settings to text - and enter them into the newer version for that cell.
  This applies also to any personal presets you may have made.
  Note that you'll have to change the cell's process (click Change Process button) and select SIMPLE from the revised TEXTURE menu (not the legacy one).   

[1241] TexMchan
SUMMARY
TEXTURE processes play the input sound(s) in various ways to create a texture of events ('notes'). TexMchan is a variant of Texture SIMPLE, catering for multi-channel output. The input is natively mono, but Soundshaper can handle stereo or m-c input. Checking the multi-params checkbox on the parameter page also allows for the use of different parameter sets.

Like SIMPLE, TEXMCHAN repeats the input sound(s) at time-intervals set by the PACKING rate, as varied by SCATTER. Onset times may be further constrained by quantizing them to a minimum step (TIMEGRID).

'Note' durations are selected randomly, between MIN_DUR and MAX_DUR. Loudness is also chosen randomly, between MIN_GAIN and MAX_GAIN.

Pitch is chosen randomly within the overall range set by MIN_PITCH and MAX_PITCH. However, in Modes 1-4, the choice is constrained to the pitches specified in the NOTEDATA file. 

If more than one input is selected (optionally), the output sounds are selected randomly between FIRSTSND and LASTSND (both are time-varying).

The output is multi-channel and POSITION and SPREAD optionally set the pan-position of events in m-c space. POSITION (the centre of the spatial image of the output) and SPREAD (the spatial spread of the output) both vary between 1 and the number of output channels (OUTCHANS).

Soundshaper can handle stereo or multi-channel input: the channels are treated separately and the outputs are mixed after processing. If the multi-params checkbox is checked on the parameter page, different parameter sets can be used for each channel.

MODES (common to all Texture processes)
 1 Single harmonic field*
 2 Changing harmonic fields*
 3 Single harmonic set*
 4 Changing harmonic sets*
 5 None (pitch chosen randomly within overall range)

* Harmonic sets (Modes 3/4) use only the specified pitches, while Harmonic fields (Modes 1/2) transpose these pitches across all octaves (within the overall range).  For Modes 2 and 4 (changing pitch sets/fields), give some 'notes' a later time than others. (These times would be ignored in Modes 1 and 3.)  

PARAMETERS (as SIMPLE, except for POSITION, SPREAD - redefined - and OUTCHANS)
NOTEDATA: textfile of  -  
 Line 1: MIDI 'pitch' of each input sound (real or arbitrary; 60= original pitch) 
followed by
 pitch-set/field (Modes 1-4 only): 
 #N where N is number of following note-event lines  
 N lines, each of:
 time instr_no pitch amplitude duration
   time: secs. (Modes 2 & 4 only: changing pitch set/field) 
   instr_no: not in use  - set it to 1 
   pitch: MIDI 1-127  - specifies pitch in pitch set/field
   amp: n/a - set to 0
   dur: n/a - set to 0 

OUT DUR: Minimum duration of output sound
  Range: 0.01 to 300 secs (notional limit)
PACKING: average time between event onsets  T-V
  Range: 0-10 
SCATTER: randomisation of event onsets T-V 
  Range: 0 - 10
TIMEGRID: minimum step in quantised timegrid T-V
  Range: 0-1000 ms. Default 0
FIRSTSND: First sound to use, of infile sounds; set to 1 if only 1 input. T-V
  Range: 1-no.of input sounds; less than or equal to LASTSND
LASTSND: Last sound to use, of infile sounds; set to 1 if only 1 input. T-V
  Range: 1-no.of sounds;  greater than or equal to FIRSTSND
MIN GAIN: Minimum level of input events  T-V
  Range: 1-127 (MIDI amp. values); default 64
MAX GAIN: Maximum level of input events  T-V
   Range: 1-127 (MIDI amp. values); default 64
MIN DUR: Minimum duration of events  T-V
  Range: 0.016-32767 (secs); less than or equal to MAX DUR
MAX DUR: Maximum duration of events  T-V
  Range: 0.016-32767 (secs); greater than or equal to MIN DUR
MIN PITCH: Minimum pitch   T-V  
  Range: MIDI 1-127, Mid-C=60, fractions allowed; less than or equal to MAX PITCH
MAX PITCH: Maximum pitch - Min pitch   T-V
  Range: MIDI 1-127, Mid-C=60, fractions allowed; greater than or equal to MIN PITCH
OUTCHANS: {last parameter, following optional ones} number of output channels
  Range: 2-16

 Optional parameters common to all Texture processes (POSITION and SPREAD different for m-c) :
(ATTEN): Overall attenuation of the output. Often needed to avoid overflow. T-V
  Range: 0.00002-1
(POSITION): Central pan position of output sound.  T-V
  Range: 0 to outchans (max 16) see SPREAD.
(SPREAD): Spatial spread of texture events. T-V
  Range: 0 to outchans (max. 16): outchans = full-spread.
(SEED): Same seed-no produces same output on re-run
  Range: 0-1; default 0: differs each time

OPTION
 Whole Input: play all of input-sound(s), ignoring duration values  

NOTES
Examples of Notedata files:

Ex1 - Mode 5, single input
  60

Ex2 - Modes 1/3; two inputs
60 60
#4
0 1 60 64 0
0 1 67 64 0
0 1 72 64 0

Ex3 - Modes 2/4, set/field changes at time 4.0"; two inputs
60 60
#8
0 1 60 64 0
0 1 67 64 0
0 1 72 64 0
0 1 76 64 0
4 1 61 64 0
4 1 68 64 0
4 1 71 64 0
4 1 73 64 0

For further details on NOTEDATA files, see supplied file <User-folder>\Simple\SIMPLEReadMe.txt.
CDP examples are supplied as presets. Very detailed discussion also in CDP Help and Texture workshop.

[1242]	GRAINTEX  Create a texture of grains with aspects of drunken walk
SUMMARY
GRAINTEX (CDP: Newtex) is a variant of GRAIN with aspects of DRUNK, creating a time-varying texture in multi-channel space with segments cut from a source sound or sounds.  

Mode 1 is single-source; Modes 2 and 3 are multi-source, with the outputs spread spatially in multi-channel space and fading in and out randomly. In Mode 2, sources are read at the original rate; in Mode 3 as a drunken walk (see DRUNK for a discussion of the concept). In Mode 1 (single-source), the source is normally transposed (TRANSPOSES: data file of times and transposition values), subject to the constraints of MAXRANGE. 

N.B. For technical reasons, Soundshaper asks for OPTIONAL (secondary) INPUTS; clearly these are not wanted in Mode 1, but are compulsory for Modes 2 and 3.

In Modes 2 and 3, SIMULT sets the number of simultaneous soundings of any source, while in all modes, STEP determines the rate of changes to the output-stream. (STEP is presumably the equivalent of the CLOCK parameter in DRUNK, which in effect sets the segment length, by limiting how much of the file can be read within the CLOCK time.)

Drunk mode (3) has several parameters borrowed from DRUNK: the START-TIME, or 'locus', is the time in the file where the first segment is read; from here it takes a step (DRUNKSTEP; CDP: Gstep) forwards or backwards within the given range (TIMERANGE or 'ambitus') to the next location, and so on.

COMPONENTS sets the number of components chosen for each event; initially it may be safeer not to set this (see Parameters below).

Apart from SPLICE, the other parameters are all related to SPACETYPE. Set this to 0, unless there is an 8-channel output (which presumes a 'ring' formation). Otherwise the various optional parameters control possible rotation speed, and the emerging of sounds from/to certain channels over a certain time. The various setings of SPACETYPE (common to several CDP programs) are given below.

MODES
 1 Single source: transpositions spread over MAXRANGE 8ves and spatially; fade in-out randomly.
 2 Multi-source: sources are read at original rate and spread spatially; fade in-out randomly.
 3 Multi-drunk: source(s) are read as drunken walks and spread spatially; fade in-out randomly.

PARAMETERS 
TRANSPOSES (Mode 1 only): Lines of TIME TR1 L1 (TR2 L2 ...), where TR = transposition ratio and L = level.
  Ranges: TR 		L: 0-1
OUTDUR: Duration of output sound 
  Range: 0-32767 secs (Soundshaper's maximum may be exceeded) 
OUTCHANS: number of output channels 
  Range: 2-16
MAXRANGE (Mode 1): Range of transpositions of input 
  Range: 1-8 octaves
SIMULT (Modes 2-3): Number of simultaneous soundings of any source 
(also called Maxrange in CDP's Usage)
  Range: 1-8
STEP: Average time between changes to stream-content of output 
  Range: 0.004 to 100 secs; < 1/2 OUTDUR)
SPACETYPE: Type of output spatialisation (only if OUTCHANS=8; otherwise 0 - random)
  Range: 0-14 - see values below
DELAY (Mode 2 only): Time delay between identical components 
  Range: 0-32767 secs (Soundshaper range 0-60 may be exceeded.)
START-TIME 'locus' (Mode 3 only): time when drunken walk occurs 
  Range: 0 - infile-length secs. (T-V)
TIMERANGE 'ambitus'(Mode 3 only): time-range within which segments are read 
  Range: 0 - infile-length secs. (T-V))
DRUNKSTEP (Mode 3 only): Maximum size of random step between segment reads. 
   Range: 0.002 - infile-length secs. (T-V)
(SPLICE): Splice-lengths for component entry and exit
  Range: 2-50 msecs; default: 5
(COMPONENTS): Number of components chosen for each event
  Range: 0 to 32 (Mode 1) or  132 (Modes 2-3), but if set may produce ERROR e.g.
  "Number of streams in play must be < number of infiles (2) times maximum duplication factor (making 4 in total)" ...whatever duplication factor is!!
- - - - - - - - - - - - - - - - - - - - - - - - - - 
These parameters may be set only if SPACETYPE > 0:
(ROTATION): Rotation speed
  Range:  +/- 20 Hz.
(FROM CHAN): Sound emerges from this channel-number at start, over "from time" 
  Range: 0 to no. of chans.; max 16
(FROM TIME): Sound emerges over this time, from the given channel "from chan" 
  Range: 0-infile-length (?) secs
(TO CHAN): Sound converges to this channel-number at end, over "to time" 
  Range: 0 to no. of chans.; max 16
(TO TIME): Sound converges over this time, to the given channel "to chan"
  Range: 0-infile-length (?) secs

SPACETYPE:
0   Spatial position set at random.
For 8-channel output only:
1   Positions alternate between Left and Right sides, but are otherwise random.
2   Positions alternate between Front and Back, but are otherwise random.
3   Rotating clockwise or anticlockwise.
4   Random permutations of all 8 channels.
5   ... plus all possible pairs of channels.
6   ... plus all possible meaningful small and large triangles.
7   ... plus square, diamond and all-at-once.
      In types 4 to 7, all members of perm used before next perm starts.
8   Alternate between all-left and all-right.
9   Alternate between all-front and all-back.
10  Alternate between all-square and all-diamond.
11  Rotate triangle formed by lspkrs 2-apart clockwise.
12  Rotate triangle formed by lspkrs 3-apart clockwise.
13  Rotate triangle formed by lspkrs 2-apart anticlockwise.
14  Rotate triangle formed by lspkrs 3-apart anticlockwise.

OPTIONS
 Exclusive: change all components as far as possible from event to event.
 Jump: all components are assigned to the same location for any one event.

NOTES
To get a transposition effect in Modes 2 and 3, choose sources which are transpositions of a given sound.

SPACETYPE: even without 8-channel reproduction, it would still be possible to specify CHANS=8 and SPACETYPE>0 and see what emerges in the different channels -- which can be split and re-mixed as suitable.

[125]  Groups
SUMMARY
TEXTURE GROUPS (CDP: texture grouped) plays the input sound(s) in groups, to create a texture of events ('notes'). GROUPS plays groups of 'notes' starting at time-intervals set by the PACKING rate (from one group onset to the next), as varied by SCATTER. The onset start-times of each group may be quantized by TIMEGRID.

As in Texture TGROUPS/ DECORATE:
  The number of events in each group is set by groupsize: from GPSIZE LOW to GPSIZE HIGH. 
  Timing of events within the group is set by the 'packing' range from GPPACK_LOW to GPPACK_HIGH; these times within the group may be quantized by PHGRID. 
  Pitches within the group are chosen from a range set by GPRANGE_LOW and GPRANGE_HIGH, given as the number of adjacent tones to be used: from the full chromatic field in Mode 5, OR from the members of the pitch field/set as defined in Modes 1-4.
  AMPRISE sets the amount of amplitude change within a group, while CONTOUR sets patterns of crescendo and/or decrescendo within the groups.  
  Events within the group are positioned spatially by GROUP_SPACE and GPSPACERANGE.
  Note durations are set by MIN_DUR and MAX_DUR. 
  Loudness is set overall between MIN_GAIN and MAX_GAIN.

The starting pitch of the group is chosen randomly within the overall range set by MIN_PITCH and MAX_PITCH. In Modes 1-4, pitches are constrained to those specified in the NOTEDATA file. 

If more than one input is selected (optionally), the output sounds are selected randomly between FIRSTSND and LASTSND (both are time-varying).

The output is in stereo and POSITION and SPREAD optionally set the pan-position of event-groups. Soundshaper can handle stereo or multi-channel input: the channels are treated separately and the outputs are mixed after processing. If the multi-params checkbox is checked on the parameter page, different parameter sets can be used for each channel.

MODES (common to all Texture processes)
 1 Single harmonic field*
 2 Changing harmonic fields*
 3 Single harmonic set*
 4 Changing harmonic sets*
 5 None (pitch chosen randomly within overall range)

* Harmonic sets (Modes 3/4) use only the specified pitches, while Harmonic fields (Modes 1/2) transpose these pitches across all octaves (within the overall range).  For Modes 2 and 4 (changing pitch sets/fields), give some 'notes' a later time than others. (These times would be ignored in Modes 1 and 3.)

PARAMETERS
NOTEDATA: textfile of  -  
 Line 1: MIDI 'pitch' of each input sound (real or arbitrary; 60= original pitch) 
followed by:
 pitch set/field (Modes 1-4 only): 
 #N where N is number of following note-event lines  
 N lines each of:
 time instr_no pitch amplitude duration
   time: secs. (Modes 2 & 4: changing set/field) 
   instr_no: not in use  - set it to 1 
   pitch: MIDI 1-127  - specifies pitch in harmonic set/field
   amp: n/a - set to 0
   dur: n/a - set to 0 

OUT DUR: Minimum duration of output sound
  Range: 0.01 to 300 secs (notional limit)
PACKING: average time between group onsets  T-V
  Range: 0-10  
SCATTER: randomisation of group onsets T-V 
  Range: 0 - 10 
TIMEGRID: minimum step in quantised timegrid (between group onsets) T-V
  Range: 0-1000 ms. Default 0
FIRSTSND: First sound to use, of infile sounds; set to 1 if only 1 input. T-V
  Range: 1-no.of input sounds; less than or equal to LASTSND
LASTSND: Last sound to use, of infile sounds; set to 1 if only 1 input. T-V
  Range: 1-no.of sounds;  greater than or equal to FIRSTSND
MIN GAIN: Minimum level of input events.  T-V
  Range: 1-127 (MIDI amp. values); default 64
MAX GAIN: Maximum level of input events.  T-V
   Range: 1-127 (MIDI amp. values); default 64
MIN DUR: Minimum duration of events. T-V
  Range: 0.016-32767 (secs); less than or equal to MAX DUR
MAX DUR: Maximum duration of events. T-V
  Range: 0.016-32767 (secs); greater than or equal to MIN DUR
MIN PITCH: Minimum pitch  T-V  
  Range: MIDI 1-127, Mid-C=60, fractions allowed; less than or equal to MAX PITCH
MAX PITCH: Maximum pitch - Min pitch.  T-V
  Range: MIDI 1-127, Mid-C=60, fractions allowed; greater than or equal to MIN PITCH
PHGRID: a quantizing timegrid applying within the groups.  T-V
  Range: 0-1000 msecs  N.B: 0 is possible, but does not create chords.
GROUP SPACE: Pan event-groups:  T-V
  0 = No change; 1 = Scattered (default); 
  2/3 = group notes move to/from where the event is; 
  4/5 = group notes move from Left - Right /from Right - Left. 
GRPSPACERANGE: Spatial range of event-groups   T-V
  Range 0-1: default 1
AMP RISE: Amplitude change within groups:  T-V
  Range: 0-127; default 0
CONTOUR: Amplitude contour of groups    T-V
  1=cresc; 2=flat; 3=decresc; 4=1 or 2; 5=1 or 3; 6=2 or 3; 0=mixture(default) 
GPSIZE LOW: Smallest no. of events in groups   T-V 
  Range: 1-32767; not > GPSIZE-HIGH
GPSIZE HIGH: Largest no. of events in groups.  T-V
  Range: 1-32767; not < GPSIZE-LOW
GPPACK LOW: Shortest time between event-onsets in groups   T-V
  Range: 0.022676 to 60000 msecs
GPPACK HIGH: Longest time between event-onsets in groups    T-V
  Range: 0.022676 to 60000 msecs
GPRANGE LOW: Min. pitch-range of groups, given as the number of adjacent tones to be used: from the full chromatic field in Mode 5, OR from the members of the harmonic field/set as defined in Modes 1-4.  T-V
  Range: 1 - 100
GPRANGE HIGH: Max. pitch-range of groups: number of adjacent notes in range: see GPRANGE_LOW  T-V
  Range: 1 - 100

 Optional parameters common to all Texture processes:
(ATTEN): Overall attenuation of the output. Often needed to avoid overflow. T-V
  Range: 0.00002-1
(POSITION): Central pan position of output sound.  T-V
  Range: 0 Left to 1 Right; default 0.5 Central; see SPREAD.
(SPREAD): Spatial spread of texture events. T-V
  Range: 0-1;  0: Central-position only to 1: full-spread.
(SEED): Same seed-no produces same output on re-run
  Range: 0-1; default 0: differs each time

OPTIONS
 Whole Input: play all of input-sound(s), ignoring duration values 
 Fixed timestep between group notes 

NOTES
Examples of Notedata files (as SIMPLE):

Ex1 - Mode 5, single input
60		- source pitch (60 = orig. pitch) 

Ex2 - Modes 1/3; two inputs
60 60 		- source pitches (60 = orig. pitch) 
#4		- no. of notes in pitch set
0 1 60 0 0	- defined by time (Modes 2&4 only),pitch, (instr always 1), amp/durn n.a.
0 1 67 0 0
0 1 72 0 0

Ex3 - Modes 2/4, set/field changes at time 4.0"; two inputs
60 60		- source pitches (60 = orig. pitch) 
#8		- no. of notes in pitch set
0 1 60 0 0	- defined by time, (instr always 1), pitch, amp/durn n.a.
0 1 67 0 0
0 1 72 0 0
0 1 76 0 0
4 1 61 0 0	- new set at time 4.0
4 1 68 0 0
4 1 71 0 0
4 1 73 0 0

For further details on NOTEDATA files, see supplied file <User-folder>\Groups\GROUPReadMe.txt.
CDP examples are supplied as presets. Very detailed discussion also in CDP Help and Texture workshop.

[126]  Decorate
SUMMARY
TEXTURE processes play the input sound(s) in various ways to create a texture of events ('notes'). 
In DECORATE (CDP: texture decorated), each pitch on a notelist, or 'line', is decorated by a group of notes. The notelist 'line' is a timed motif, defined in NOTEDATA. 
CENTRING defines how the decoration notes (of the group) lie against the main note of the 'line': centred on it, lying below or above it, etc. 
Groups are separated by SKIPTIME: the time from the end of one group to the start of the next. 

As in Texture GROUPS / TGROUPS:
  The no. of events in each group is set by groupsize: from GPSIZE LOW to GPSIZE HIGH
  Timing of events within the group is set by the 'packing' range from GPPACK_LOW to GPPACK_HIGH; these times within the group may be quantized by PHGRID. 
  Pitches within the group are chosen from a range set by GPRANGE_LOW and GPRANGE_HIGH, given as the number of adjacent tones to be used: from the full chromatic field in Mode 5, OR from the members of the harmonic field/set as defined in Modes 1-4.
  AMPRISE sets the amount of amplitude change within a group, while CONTOUR sets patterns of crescendo and/or decrescendo within the groups. 
  Events within the group are positioned spatially by GROUP_SPACE and GPSPACERANGE.
  Note durations are set overall by MIN_DUR and MAX_DUR. 
  Loudness is set overall between MIN_GAIN and MAX_GAIN.

Because the starting pitch of the group is defined by the 'line', the parameters MIN_PITCH and MAX_PTICH are not needed and are absent. In Modes 1-4, pitches are constrained to those specified in the NOTEDATA file. 

If more than one input is selected (optionally), the output sounds are selected randomly between FIRSTSND and LASTSND (both are time-varying).

The output is in stereo and POSITION and SPREAD optionally set the pan-position of event-groups. Soundshaper can handle stereo or multi-channel input: the channels are treated separately and the outputs are mixed after processing. If the multi-params checkbox is checked on the parameter page, different parameter sets can be used for each channel.

Variants (Decorate / Predecor / Postdecor) --
The decorations are connected to the line: centred (DECORATE), before and ending on (PREDECOR), and starting precisely on (POSTDECOR), the line's time points.

Use the 'Choose Process' radio buttons to select the desired function.

MODES (common to all Texture processes)
 1 Single harmonic field*
 2 Changing harmonic fields*
 3 Single harmonic set*
 4 Changing harmonic sets*
 5 None (pitch chosen randomly within overall range)

* Harmonic sets (Modes 3/4) use only the specified pitches, while Harmonic fields (Modes 1/2) transpose these pitches across all octaves (within the overall range).  For Modes 2 and 4 (changing pitch sets/fields), give some 'notes' a later time than others. (These times would be ignored in Modes 1 and 3.)

PARAMETERS
NOTEDATA: textfile of  -  
 Line 1: MIDI 'pitch' of each input sound (real or arbitrary; 60= original pitch) 
followed by:
 substructure 'line' of notes:
 #N	- no. of notes
 N lines each of:
 time instr_no pitch amplitude duration
   time: secs. 
   instr_no: not in use  - set it to 1 
   pitch: MIDI 1-127  - specifies pitch in 'line'
   amp: n/a - set to 0
   dur: n/a - set to 0 
followed by (Modes 1-4 only): 
 pitch set/field:
 #N where N is number of following note-event lines  
 N lines each of:
 time instr_no pitch amplitude duration
   time: secs. (Modes 2 & 4: changing set/field) 
   instr_no: not in use  - set it to 1 
   pitch: MIDI 1-127  - specifies pitch in pitch set/field
   amp: n/a - set to 0
   dur: n/a - set to 0 

OUT DUR: Minimum duration of output sound
  Range: 0.01 to 300 secs (notional limit) 
SKIP TIME: Time between groups (between runs of 'line' substructure notelist)
  Range: 0.001 to 100 secs
FIRSTSND: First sound to use, of infile sounds; set to 1 if only 1 input. T-V
  Range: 1-no.of input sounds; less than or equal to LASTSND
LASTSND: Last sound to use, of infile sounds; set to 1 if only 1 input. T-V
  Range: 1-no.of sounds;  greater than or equal to FIRSTSND
MIN GAIN: Minimum level of input events.  T-V
  Range: 1-127 (MIDI amp. values); default 64
MAX GAIN: Maximum level of input events.  T-V
   Range: 1-127 (MIDI amp. values); default 64
MIN DUR: Minimum duration of events.  T-V
  Range: 0.016-32767 (secs); less than or equal to MAX DUR
MAX DUR: Maximum duration of events.  T-V
  Range: 0.016-32767 (secs); greater than or equal to MIN DUR
PHGRID: a quantizing timegrid applying within the groups.  T-V
  Range: 0-1000 msecs  N.B: 0 is possible, but does not create chords.
GROUP SPACE: Pan event-groups:    T-V
  0 = No change; 1 = Scattered(default); 
  2/3 = decorations move to/from where the event is; 
  4/5 = decorations move from Left - Right /from Right - Left. 
GRPSPACERANGE: Spatial range of event-groups    T-V
  Range 0-1: default 1
AMP RISE: Amplitude change within groups:    T-V
  Range: 0-127; default 0
CONTOUR: Amplitude contour of groups   T-V
  1=cresc; 2=flat; 3=decresc; 4=1 or 2; 5=1 or 3; 6=2 or 3; 0=mixture(default) 
GPSIZE LOW: Smallest no. of events in groups.    T-V 
  Range: 1-32767; not > GPSIZE-HIGH
GPSIZE HIGH: Largest no. of events in groups.    T-V
  Range: 1-32767; not < GPSIZE-LOW
GPPACK LOW: Shortest time between event-onsets in groups.   T-V
  Range: 0.022676 to 60000 msecs
GPPACK HIGH: Longest time between event-onsets in groups.    T-V
  Range: 0.022676 to 60000 msecs
GPRANGE LOW: Min. pitch-range of groups, given as the number of adjacent tones to be used: from the full chromatic field in Mode 5, OR from the members of the harmonic field/set as defined in Modes 1-4.   T-V
  Range: 1 - 100
GPRANGE HIGH: Max. pitch-range of groups: number of adjacent notes in range: see GPRANGE_LOW    T-V
  Range: 1 - 100
CENTRING - how decorations relate to line pitches:    T-V
  0:Decor pitches are centred on line pitches(default); 
  1:ABOVE; 2:BELOW; 
  3:Centred + Above; 4:Centred + Below; 
  5:Above + Below;   6:Centred + Above + Below 

 Optional parameters common to all Texture processes:
(ATTEN): Overall attenuation of the output. Often needed to avoid overflow. T-V
  Range: 0.00002-1
(POSITION): Central pan position of output sound.  T-V
  Range: 0 Left to 1 Right; default 0.5 Central; see SPREAD.
(SPREAD): Spatial spread of texture events. T-V
  Range: 0-1;  0: Central-position only to 1: full-spread.
(SEED): Same seed-no produces same output on re-run
  Range: 0-1; default 0: differs each time

OPTIONS
 Whole input: Always play whole input-sound (ignoring duration values)
 Fixed time-step: between group notes
 Not fixed instr.: each group NOT confined to a fixed instrument (default: fixed)
 Decorate topnote: decorate highest note of any chord:(default: first note listed)
 Decorate all notes: decorate all notes of any chord
 Discard original line after decoration

NOTES
Example of Notedata file (for Modes 1 & 3; Modes 2 & 4 add times to pitch-set/field; Mode 5 omits this list):
60		 - source pitch
#4		 - no. of notes in 'line'
0.0 1 60 0 0	 - line defined by time, instr (always 1), pitch, amp/durn n.a. 
0.5 1 64 0 0
1.0 1 63 0 0
1.5 1 66 0 0
#3		 - pitch set/field
0.0 1 60 0 0	 - defined by time (Modes 2&4 only),pitch, (instr always 1), amp/durn n.a.
0.0 1 64 0 0
0.0 1 67 0 0

For further details on NOTEDATA files, see supplied file <User-folder>\Decorate\DECORATEReadMe.txt.
CDP examples are supplied as presets. Very detailed discussion also in CDP Help and Texture workshop.

[127] PreDecor
Texture PreDecor: is a variant of Texture DECORATE.

Decorate / Predecor / Postdecor --
The decorations are connected to the line: centred (DECORATE), before and ending on (PREDECOR), and starting precisely on (POSTDECOR), the line's time points.

For details of Modes, Parameters and NOTEDATA file, see DECORATE 

[128]  PostDecor
Texture Postdecor: is a variant of Texture DECORATE.

Decorate / Predecor / Postdecor --
The decorations are connected to the line: centred (DECORATE), before and ending on (PREDECOR), and starting precisely on (POSTDECOR), the line's time points.

For details of Modes, Parameters and NOTEDATA file, see DECORATE 

[129]  Ornate
SUMMARY
TEXTURE processes play the input sound(s) in various ways to create a texture of events ('notes'). 
In ORNATE, each pitch on a notelist, or 'line', is ornamented by a group of notes. The notelist 'line' is a timed motif, defined in NOTEDATA. The process is like DECORATE (q.v.), but here the group is a fully defined motif or 'ornament' (the equivalent of a melodic figure being repeated in sequence, on a succession of pitches). As in DECORATE, groups are separated by SKIPTIME: the time from the end of one group to the start of the next. 

(Because the ornamentation is a fully-defined motif, various parameters found in GROUPS and/or DECORATE are absent:  GPSIZE LOW/HIGH, GPPACK_LOW/HIGH, GPRANGE_LOW/HIGH, CENTRING) 

As in Texture GROUPS / TGROUPS/ DECORATE:
  Times within the group may be quantized by PHGRID. 
  AMPRISE sets the amount of amplitude change within a group, while CONTOUR sets patterns of crescendo and/or decrescendo within the groups. 
  Events within the group are positioned spatially by GROUP_SPACE and GPSPACERANGE.
  Note durations are set overall by MIN_DUR and MAX_DUR. 
  Loudness is set overall between MIN_GAIN and MAX_GAIN.

The speed (tempo) of the ornament can be altered with MULT LOW/HIGH: this multiplies the total duration of the motif: 1 is no change, 0.5 doubles the speed etc. However, it does not change the time between the ornaments.

Variants (Ornate / Preornate / Postornate) --
These functions vary how the ornaments are connected to the line: centred (ORNATE), before and ending on (PREORNATE), and starting precisely on (POSTORNATE), the line's time points.

Use the 'Choose Process' radio buttons to select the desired function.

MODES (common to all Texture processes)
 1 Single harmonic field*
 2 Changing harmonic fields*
 3 Single harmonic set*
 4 Changing harmonic sets*
 5 None (pitch chosen randomly within overall range)

* Harmonic sets (Modes 3/4) use only the specified pitches, while Harmonic fields (Modes 1/2) transpose these pitches across all octaves (within the overall range).  For Modes 2 and 4 (changing sets/fields), give some 'notes' a later time than others. (These times would be ignored in Modes 1 and 3.)

PARAMETERS
NOTEDATA: textfile of  -  
 Line 1: MIDI 'pitch' of each input sound (real or arbitrary; 60= original pitch) 
followed by:
 substructure 'line' of notes:
 #N	- no. of notes
 N lines of:
 time instr_no pitch amplitude duration
   time: secs. 
   instr_no: not in use  - set it to 1 
   pitch: MIDI 1-127  - specifies pitch in 'line'
   amp: n/a - set to 0
   dur: n/a - set to 0 
followed by (Modes 1-4 only): 
 pitch set/field:
 #N where N is number of following note-event lines  
 N lines each of:
 time instr_no pitch amplitude duration
   time: secs. (Modes 2 & 4 only: changing set/field) 
   instr_no: not in use  - set it to 1 
   pitch: MIDI 1-127  - specifies pitch in harmonic set/field
   amp: n/a - set to 0
   dur: n/a - set to 0 
followed by (all modes): 
 the 'ornament', a motif which is placed on the 'line':
#N	 - no. of notes
N lines of
 time instr_no pitch amplitude duration
   time: secs. 
   instr_no: not in use  - set it to 1 
   pitch: MIDI 1-127  - specifies ornament pitch 
   amp: MIDI 0-127 
   dur: secs  

OUT DUR: Minimum duration of output sound
  Range: 0.01 to 300 secs (notional limit) 
SKIP TIME: Time between groups (between runs of 'line' substructure notelist)
  Range: 0.001 to 100 secs
FIRSTSND: First sound to use, of infile sounds; set to 1 if only 1 input. T-V
  Range: 1-no.of input sounds; less than or equal to LASTSND
LASTSND: Last sound to use, of infile sounds; set to 1 if only 1 input. T-V
  Range: 1-no.of sounds;  greater than or equal to FIRSTSND
MIN GAIN: Minimum level of input events.  T-V
  Range: 1-127 (MIDI amp. values); default 64
MAX GAIN: Maximum level of input events.  T-V
   Range: 1-127 (MIDI amp. values); default 64
MIN DUR: Minimum duration of events. T-V
  Range: 0.016-32767 (secs); less than or equal to MAX DUR
MAX DUR: Maximum duration of events. T-V
  Range: 0.016-32767 (secs); greater than or equal to MIN DUR
PHGRID: a quantizing timegrid applying within the groups.  T-V
  Range: 0-1000 msecs  N.B: 0 is possible, but does not create chords.
GROUP SPACE: Pan event-groups:    T-V
  0 = No change; 1 = Scattered(default); 
  2/3 = decorations move to/from where the event is; 
  4/5 = decorations move from Left - Right /from Right - Left. 
GRPSPACERANGE: Spatial range of event-groups   T-V 
  Range 0-1: default 1
AMP RISE: Amplitude change within groups:    T-V
  Range: 0-127; default 0
CONTOUR: Amplitude contour of groups:    T-V
  1=cresc; 2=flat; 3=decresc; 4=1 or 2; 5=1 or 3; 6=2 or 3; 0=mixture(default) 
MULT LOW: Minimum multiplier of total input duration of motif.   T-V 
  Range: 0.01-100 (<=Mult_high) 1=no change; 0.5 doubles speed; 2= 1/2 speed/ twice the duration
MULT HIGH: Maximum multiplier of total input duration of motif.  T-V 
  Range: 0.01-100 (>=Mult_low) 1=no change; 0.5 doubles speed; 2= 1/2 speed/ twice the duration

 Optional parameters common to all Texture processes:
(ATTEN): Overall attenuation of the output. Often needed to avoid overflow. T-V
  Range: 0.00002-1
(POSITION): Central pan position of output sound.  T-V
  Range: 0 Left to 1 Right; default 0.5 Central; see SPREAD.
(SPREAD): Spatial spread of texture events. T-V
  Range: 0-1;  0: Central-position only to 1: full-spread.
(SEED): Same seed-no produces same output on re-run
  Range: 0-1; default 0: differs each time

OPTIONS
 Whole input: Always play whole input-sound (ignoring duration values)
 Fixed time-step: between group notes
 Not fixed instr.: Each group NOT confined to a fixed instrument (default: fixed)
 Ornate highest: Ornaments on highest note of any chord:(default: first note listed)
 Ornate all notes: Ornaments on all notes of any chord

NOTES
Example of NOTEDATA file for Ornate:
60		- source pitch
#4		- no. of notes in 'line'
0.0 1 60 0 0    - 'line' defined by time, instr (always 1), pitch 
0.5 1 64 0 0
1.0 1 63 0 0
1.5 1 66 0 0
#8		- no. of notes in pitch set/field (Modes 1-4 only)
0.0 1 60 0 0	- defined by pitch (instr always 1, amp/durn n.a.)
0.0 1 61 0 0
0.0 1 63 0 0
0.0 1 64 0 0
0.0 1 66 0 0
0.0 1 67 0 0
0.0 1 69 0 0
0.0 1 70 0 0
#5		 - no. of notes in ornament 		
0.0 1 60 70 0.3  - defined by time,(instr always 1),pitch,amp,duration
0.1 1 61 50 0.3
0.2 1 63 50 0.3
0.3 1 64 50 0.3
0.4 1 66 70 0.6

For further details on NOTEDATA files, see supplied file <User-folder>\Ornate\ORNATEReadMe.txt.
CDP examples are supplied as presets. Very detailed discussion also in CDP Help and Texture workshop.

[130]  PreOrnate
Texture PreOrnate is a variant of Texture ORNATE.

Ornate / Preornate / Postornate --
The decorations are connected to the line: centred (ORNATE), before and ending on (PREORNATE), and starting precisely on (POSTORNATE), the line's time points.

For details of Modes, Parameters and NOTEDATA file, see ORNATE 

[131]  PostOrnate
Texture PostOrnate is a variant of Texture ORNATE.

Ornate / Preornate / Postornate --
The decorations are connected to the line: centred (ORNATE), before and ending on (PREORNATE), and starting precisely on (POSTORNATE), the line's time points.

For details of Modes, Parameters and NOTEDATA file, see ORNATE. 

[132]  Motifs
SUMMARY
TEXTURE processes play the input sound(s) in various ways to create a texture of events ('notes'). In MOTIFS, each group of notes is a fully defined motif (like the ornament in ORNATE; c.f. also TMOTIFS).  

As in GROUPS, various parameters are needed to define the relationships between the groups. Groups start at time-intervals set by the PACKING rate (from one group onset to the next), as varied by SCATTER. The onset start-times of each group may be quantized by TIMEGRID.

Also, as in Texture GROUPS:
  The starting pitch of the group is chosen randomly within the overall range set by MIN_PITCH and  MAX_PITCH. In Modes 1-4, the starting pitch is restricted to those specified in the pitch-set (see NOTEDATA). 
  Times within the group may be quantized by PHGRID. 
  AMPRISE sets the amount of amplitude change within a group, while CONTOUR sets patterns of crescendo and/or decrescendo within the groups.  
  Events within the group are positioned spatially by GROUP_SPACE and GPSPACERANGE.
  Loudness is set overall between MIN_GAIN and MAX_GAIN.

As in ORNATE, the total duration of the group (tempo) may be expanded or shrunk by a multiplier (MULT_LOW/HIGH).

If more than one input is selected (optionally), the output sounds are selected randomly between FIRSTSND and LASTSND (both are time-varying).

The output is in stereo and POSITION and SPREAD optionally set the pan-position of event-groups. Soundshaper can handle stereo or multi-channel input: the channels are treated separately and the outputs are mixed after processing. If the multi-params checkbox is checked on the parameter page, different parameter sets can be used for each channel.

Variants:
In MOTIFS: the first note of motif is restricted to the notes of the pitch-set (MOdes 1-4); 
in HMCMOTIFS, all notes of the motif are constrained. 

MODES (common to all Texture processes)
 1 Single harmonic field*
 2 Changing harmonic fields*
 3 Single harmonic set*
 4 Changing harmonic sets*
 5 None (pitch chosen randomly within overall range)
* Harmonic sets (Modes 3/4) use only the specified pitches, while Harmonic fields (Modes 1/2) transpose these pitches across all octaves (within the overall range).  For Modes 2 and 4 (changing sets/fields), give some 'notes' a later time than others. (These times would be ignored in Modes 1 and 3.)

PARAMETERS
NOTEDATA: textfile of  -  
 Line 1: MIDI 'pitch' of each input sound (real or arbitrary; 60= original pitch) 
followed by: 
 pitch set/field (Modes 1-4 only): 
 #N where N is number of following note-event lines  
 N lines, each of:
 time instr_no pitch amplitude duration
   time: secs. (Modes 2 & 4 only: changing set/field) 
   instr_no: not in use  - set it to 1 
   pitch: MIDI 1-127  - specifies pitch in harmonic set/field
   amp: n/a - set to 0
   dur: n/a - set to 0 
followed by (all modes): 
 a motif :
#N	 - no. of notes
N lines of
 time instr_no pitch amplitude duration
   time: secs. 
   instr_no: not in use  - set it to 1 
   pitch: MIDI 1-127  - specifies ornament pitch 
   amp: MIDI 0-127 
   dur: secs  

OUT DUR: Minimum duration of output sound
  Range: 0.01 to 300 secs (notional limit)
PACKING: average time between group onsets  (T-V)
  Range: 0-10  
SCATTER: randomisation of group onsets (T-V) 
  Range: 0 - 10 
TIMEGRID: minimum step in quantised timegrid (between group onsets) (T-V)
  Range: 0-1000 ms. Default 0
FIRSTSND: First sound to use, of infile sounds; set to 1 if only 1 input. (T-V)
  Range: 1-no.of input sounds; less than or equal to LASTSND
LASTSND: Last sound to use, of infile sounds; set to 1 if only 1 input. (T-V)
  Range: 1-no.of sounds;  greater than or equal to FIRSTSND
MIN GAIN: Minimum level of input events.  (T-V)
  Range: 1-127 (MIDI amp. values); default 64
MAX GAIN: Maximum level of input events.  (T-V)
   Range: 1-127 (MIDI amp. values); default 64
MIN PITCH: Minimum pitch  (T-V)  
  Range: MIDI 1-127, Mid-C=60, fractions allowed; less than or equal to MAX PITCH
MAX PITCH: Maximum pitch - Min pitch.  (T-V)
  Range: MIDI 1-127, Mid-C=60, fractions allowed; greater than or equal to MIN PITCH
PHGRID: a quantizing timegrid applying within the groups.  (T-V)
  Range: 0-1000 msecs  N.B: 0 is possible, but does not create chords.
GROUP SPACE: Pan event-groups: 
  0 = No change; 1 = Scattered (default); 
  2/3 = group notes move to/from where the event is; 
  4/5 = group notes move from Left - Right /from Right - Left. 
GRPSPACERANGE: Spatial range of event-groups 
  Range 0-1: default 1
AMP RISE: Amplitude change within groups: 
  Range: 0-127; default 0
CONTOUR: Amplitude contour of gps
  1=cresc; 2=flat; 3=decresc; 4=1 or 2; 5=1 or 3; 6=2 or 3; 0=mixture(default)
MULT LOW: Minimum multiplier of total input duration of motif 
  Range: 0.01-100 (<=Mult_high) 1=no change; 0.5 doubles speed; 2= 1/2 speed/ twice the duration
MULT HIGH: Maximum multiplier of total input duration of motif 
  Range: 0.01-100 (>=Mult_low) 1=no change; 0.5 doubles speed; 2= 1/2 speed/ twice the duration

 Optional parameters common to all Texture processes:
(ATTEN): Overall attenuation of the output. Often needed to avoid overflow. (T-V)
  Range: 0.00002-1
(POSITION): Central pan position of output sound.  (T-V)
  Range: 0 Left to 1 Right; default 0.5 Central; see SPREAD.
(SPREAD): Spatial spread of texture events. (T-V)
  Range: 0-1;  0: Central-position only to 1: full-spread.
(SEED): Same seed-no produces same output on re-run
  Range: 0-1; default 0: differs each time 

OPTIONS
 Whole Input: play all of input-sound(s), ignoring duration values 
 Fixed timestep between group notes
 Not fixed instr.: Each group NOT confined to a fixed instrument (default: fixed)

NOTES
Example of NOTEDATA file (for Modes 1 & 3):
60		  - source pitch
#4		  - no. of notes in pitch set/field (Modes 1-4 only)	
0.0 1 60 70 0	  - defined by pitch (instr always 1, amp/durn n.a.)
0.0 1 63 50 0
0.0 1 65 50 0
0.0 1 68 50 0
#5		  - no. of notes in motif	
0.0 1 60 70 0.3   - motif defined by time, instr (always 1), pitch, amp, duration
0.1 1 61 50 0.3
0.2 1 63 50 0.3
0.3 1 64 50 0.3
0.4 1 66 70 0.6

For further details on NOTEDATA files, see supplied file <User-folder>\Motifs\MOTIFSReadMe.txt.
CDP examples are supplied as presets. Very detailed discussion also in CDP Help and Texture workshop.

[133]  HmcMotifs
HmcMotifs (CDP: motifsin) is a variant of TEXTURE MOTIFS.
In MOTIFS: the first note of motif is restricted to the notes of the pitch-set (Modes 1-4); 
in HMCMOTIFS, all notes of the motif are constrained.

For details on Modes, parameters and NOTEDATA file, see MOTIFS

[134]  Timed
SUMMARY
TEXTURE processes play the input sound(s) in various ways to create a texture of events ('notes'). Texture TIMED repeats a motif of 'notes', where each motif is defined by rhythm alone, in NOTEDATA.
The motifs are separated by SKIPTIME. Pitches are selected at random from a pitch range (Mode 5) or a pitch set/field (Modes 1-4). The overall pitch range is set between MIN_PITCH and MAX_PITCH.

'Note' durations are selected randomly, between MIN_DUR and MAX_DUR. Loudness is also chosen randomly, between MIN_GAIN and MAX_GAIN.

If more than one input is selected (optionally), the output sounds are selected randomly between FIRSTSND and LASTSND (both are time-varying).

The output is in stereo and POSITION and SPREAD optionally set the pan-position of events. Soundshaper can handle stereo or multi-channel input: the channels are treated separately and the outputs are mixed after processing. If the multi-params checkbox is checked on the parameter page, different parameter sets can be used for each channel.

MODES (common to all Texture processes)
 1 Single harmonic field*
 2 Changing harmonic fields*
 3 Single harmonic set*
 4 Changing harmonic sets*
 5 None (pitch chosen randomly within overall range)

* Harmonic sets (Modes 3/4) use only the specified pitches, while Harmonic fields (Modes 1/2) transpose these pitches across all octaves (within the overall range).  For Modes 2 and 4 (changing sets/fields), give some 'notes' a later time than others. (These times would be ignored in Modes 1 and 3.)  

PARAMETERS
NOTEDATA: textfile of - 
 Line 1: MIDI 'pitch' of each input sound (real or arbitrary; 60= original pitch) 
followed by:
 rhythmic motif
 #N  - no. of notes in motif
 N lines each of:
 time instr_no pitch amplitude duration
   time: secs. 
   instr_no: not in use  - set it to 1 
   pitch: n/a set to 0
   amp: n/a - set to 0
   dur: n/a - set to 0 
followed by (Modes 1-4 only):
 pitch set/field 
 #N where N is number of following note-event lines  
 N lines, each of:
 time instr_no pitch amplitude duration
   time: secs. (Modes 2 & 4 only: changing set/field) 
   instr_no: not in use  - set it to 1 
   pitch: MIDI 1-127  - specifies pitch in harmonic set/field
   amp: n/a - set to 0
   dur: n/a - set to 0 

OUT DUR: Minimum duration of output sound
  Range: 0.01 to 300 secs (notional limit)
SKIP TIME: Time gap between groups
  Range: 0.001 to 100 secs
FIRSTSND: First sound to use, of infile sounds; set to 1 if only 1 input. (T-V)
  Range: 1-no.of input sounds; less than or equal to LASTSND
LASTSND: Last sound to use, of infile sounds; set to 1 if only 1 input. (T-V)
  Range: 1-no.of sounds;  greater than or equal to FIRSTSND
MIN GAIN: Minimum level of input events  (T-V)
  Range: 1-127 (MIDI amp. values); default 64
MAX GAIN: Maximum level of input events  (T-V)
   Range: 1-127 (MIDI amp. values); default 64
MIN DUR: Minimum duration of events (T-V)
  Range: 0.016-32767 (secs); less than or equal to MAX DUR
MAX DUR: Maximum duration of events (T-V)
  Range: 0.016-32767 (secs); greater than or equal to MIN DUR
MIN PITCH: Minimum pitch  (T-V)  
  Range: MIDI 1-127, Mid-C=60, fractions allowed; less than or equal to MAX PITCH
MAX PITCH: Maximum pitch - Min pitch  (T-V)
  Range: MIDI 1-127, Mid-C=60, fractions allowed; greater than or equal to MIN PITCH

 Optional parameters common to all Texture processes:
(ATTEN): Overall attenuation of the output. Often needed to avoid overflow. (T-V)
  Range: 0.00002-1
(POSITION): Central pan position of output sound.  (T-V)
  Range: 0 Left to 1 Right; default 0.5 Central; see SPREAD.
(SPREAD): Spatial spread of texture events. (T-V)
  Range: 0-1;  0: Central-position only to 1: full-spread.
(SEED): Same seed-no produces same output on re-run
  Range: 0-1; default 0: differs each time

OPTION
 Whole Input: play all of input-sound(s), ignoring duration values  

NOTES
Example of NOTEDATA file:
60		 - source pitch
#5		 - no. of notes in motif
0.00 1 0 0 0	 - motif defined by time, (instr always 1); other fields n/a
0.15 1 0 0 0
0.25 1 0 0 0
1.00 1 0 0 0
1.50 1 0 0 0
#8		 - no. of notes in pitch set/field (Modes 1-4 only)
0.0 1 60 0 0	 - defined by time (Modes 2&4), instr (always 1), pitch, amp/durn n.a.)
0.0 1 61 0 0
0.0 1 63 0 0
0.0 1 64 0 0
0.0 1 66 0 0
0.0 1 67 0 0
0.0 1 69 0 0
0.0 1 70 0 0

For further details on NOTEDATA files, see supplied file <User-folder>\Timed\TIMEDReadMe.txt.
CDP examples are supplied as presets. Very detailed discussion also in CDP Help and Texture workshop.


[135]  TGroups
SUMMARY
TEXTURE processes play the input sound(s) in various ways to create a texture of events ('notes'). Texture TGROUPS (Timed-groups) is like a mixture of TIMED and GROUPS: it plays groups of 'notes', but the onset of each group is timed by a rhythmic motif defined in NOTEDATA. The groups are separated by a pause of length SKIPTIME.

As in Texture GROUPS/ DECORATE:
  The number of events in each group is set by groupsize: from GPSIZE LOW to GPSIZE HIGH. 
If GPSIZE is set to 1, the output will be the same as Texture TIMED. In TIMED, individual 'notes' are attached to the rhythm. In TGROUPS, it is groups of notes that are attached to the rhythm. 
  Timing of events within the group is set by the 'packing' range from GPPACK_LOW to GPPACK_HIGH; these times within the group may be quantized by PHGRID. 
  Pitches within the group are chosen from a range set by GPRANGE_LOW and GPRANGE_HIGH, given as the number of adjacent tones to be used: from the full chromatic field in Mode 5, OR from the members of the pitch field/set as defined in Modes 1-4.
  AMPRISE sets the amount of amplitude change within a group, while CONTOUR sets patterns of crescendo and/or decrescendo within the groups.  
  Events within the group are positioned spatially by GROUP_SPACE and GPSPACERANGE.
  Note durations are set overall between MIN_DUR and MAX_DUR. 
  Loudness is set overall between MIN_GAIN and MAX_GAIN.

The starting pitch of the group is chosen randomly within the overall range set by MIN_PITCH and MAX_PITCH. In Modes 1-4, pitches are constrained to those specified in the pitch set/field (NOTEDATA file). 

If more than one input is selected (optionally), the output sounds are selected randomly between FIRSTSND and LASTSND (both are time-varying).

The output is in stereo and POSITION and SPREAD optionally set the pan-position of event-groups. Soundshaper can handle stereo or multi-channel input: the channels are treated separately and the outputs are mixed after processing. If the multi-params checkbox is checked on the parameter page, different parameter sets can be used for each channel.

MODES (common to all Texture processes)
 1 Single harmonic field*
 2 Changing harmonic fields*
 3 Single harmonic set*
 4 Changing harmonic sets*
 5 None (pitch chosen randomly within overall range)
* Harmonic sets (Modes 3/4) use only the specified pitches, while Harmonic fields (Modes 1/2) transpose these pitches across all octaves (within the overall range).  For Modes 2 and 4 (changing sets/fields), give some 'notes' a later time than others. (These times would be ignored in Modes 1 and 3.)

PARAMETERS
NOTEDATA: textfile of - 
 Line 1: MIDI 'pitch' of each input sound (real or arbitrary; 60= original pitch) 
followed by:
 rhythmic motif
 #N  - no. of notes in motif
 N lines each of:
 time instr_no pitch amplitude duration
   time: secs. 
   instr_no: not in use  - set it to 1 
   pitch: n/a set to 0
   amp: n/a - set to 0
   dur: n/a - set to 0 
followed by (Modes 1-4 only):
 pitch set/field 
 #N where N is number of following note-event lines  
 N lines, each of:
 time instr_no pitch amplitude duration
   time: secs. (Modes 2 & 4 only: changing set/field) 
   instr_no: not in use  - set it to 1 
   pitch: MIDI 1-127  - specifies pitch in harmonic set/field
   amp: n/a - set to 0
   dur: n/a - set to 0 

OUT DUR: Minimum duration of output sound
  Range: 0.01 to 300 secs (notional limit)
SKIP TIME: Time gap between groups
  Range: 0.001 to 100 secs
FIRSTSND: First sound to use, of infile sounds; set to 1 if only 1 input. (T-V)
  Range: 1-no.of input sounds; less than or equal to LASTSND
LASTSND: Last sound to use, of infile sounds; set to 1 if only 1 input. (T-V)
  Range: 1-no.of sounds;  greater than or equal to FIRSTSND
MIN GAIN: Minimum level of input events.  (T-V)
  Range: 1-127 (MIDI amp. values); default 64
MAX GAIN: Maximum level of input events.  (T-V)
   Range: 1-127 (MIDI amp. values); default 64
MIN DUR: Minimum duration of events. (T-V)
  Range: 0.016-32767 (secs); less than or equal to MAX DUR
MAX DUR: Maximum duration of events. (T-V)
  Range: 0.016-32767 (secs); greater than or equal to MIN DUR
MIN PITCH: Minimum pitch  (T-V)  
  Range: MIDI 1-127, Mid-C=60, fractions allowed; less than or equal to MAX PITCH
MAX PITCH: Maximum pitch - Min pitch.  (T-V)
  Range: MIDI 1-127, Mid-C=60, fractions allowed; greater than or equal to MIN PITCH
PHGRID: a quantizing timegrid applying within the groups.  (T-V)
  Range: 0-1000 msecs  N.B: 0 is possible, but does not create chords.
GROUP SPACE: Pan event-groups:   (T-V)
  0 = No change; 1 = Scattered (default); 
  2/3 = group notes move to/from where the event is; 
  4/5 = group notes move from Left - Right /from Right - Left. 
GRPSPACERANGE: Spatial range of event-groups   (T-V)
  Range 0-1: default 1
AMP RISE: Amplitude change within groups  (T-V)
  Range: 0-127; default 0
CONTOUR: Amplitude contour of groups	  (T-V)
  1=cresc; 2=flat; 3=decresc; 4=1 or 2; 5=1 or 3; 6=2 or 3; 0=mixture(default) 
GPSIZE LOW: Smallest no. of events in groups.   (T-V) 
  Range: 1-32767; not > GPSIZE-HIGH
GPSIZE HIGH: Largest no. of events in groups.   (T-V)
  Range: 1-32767; not < GPSIZE-LOW
GPPACK LOW: Shortest time between event-onsets in groups.   (T-V)   
  Range: 0.022676 to 60000 msecs
GPPACK HIGH: Longest time between event-onsets in groups.  (T-V) 
  Range: 0.022676 to 60000 msecs
GPRANGE LOW: Min. pitch-range of groups, given as the number of adjacent tones to be used: from the full chromatic field in Mode 5, OR from the members of the harmonic field/set as defined in Modes 1-4.   (T-V)
  Range: 1 - 100
GPRANGE HIGH: Max. pitch-range of groups: number of adjacent notes in range: see GPRANGE_LOW.  (T-V)
  Range: 1 - 100

 Optional parameters common to all Texture processes:
(ATTEN): Overall attenuation of the output. Often needed to avoid overflow. (T-V)
  Range: 0.00002-1
(POSITION): Central pan position of output sound.  (T-V)
  Range: 0 Left to 1 Right; default 0.5 Central; see SPREAD.
(SPREAD): Spatial spread of texture events. (T-V)
  Range: 0-1;  0: Central-position only to 1: full-spread.
(SEED): Same seed-no produces same output on re-run
  Range: 0-1; default 0: differs each time

OPTIONS
 Whole Input: play all of input-sound(s), ignoring duration values 
 Fixed timestep between group notes
 Not fixed instr.: Each group NOT confined to a fixed instrument (default: fixed)

NOTES
Example of NOTEDATA file:
60		- source pitch
#5		- no. of notes in rhythmic motif
0.00 1 0 0 0	- motif defined by time, (instr always 1); other fields n/a
0.15 1 0 0 0
0.25 1 0 0 0
1.00 1 0 0 0
1.50 1 0 0 0
#8		- no. of notes in pitch set/field (Modes 1-4 only)
0.0 1 60 0 0	- defined by time (Modes 2&4), instr (always 1), pitch, amp/durn n.a.)
0.0 1 61 0 0
0.0 1 63 0 0
0.0 1 64 0 0
0.0 1 66 0 0
0.0 1 67 0 0
0.0 1 69 0 0
0.0 1 70 0 0

For further details on NOTEDATA files, see supplied file <User-folder>\TGroups\TGROUPSReadMe.txt.
CDP examples are supplied as presets. Very detailed discussion also in CDP Help and Texture workshop.


[136]  TMotifs
SUMMARY
TEXTURE processes play the input sound(s) in various ways to create a texture of events ('notes'). In TEXTURE TMOTIFS (Timed Motifs), fully defined motifs begin to play at the times specified in a rhythmic template, defined in NOTEDATA. 

SKIPTIME is the time between repetitions of the rhythmic template. In other Texture programs, this is a pause between the end of one group or motif and start of the next, but in TMOTIFS it is the time between the start of one motif and the next, irrespective of the motif's own length. (This allows for overlap between the note-groups -- see for ex. Preset TMotif2B.)

The overall level of the motif-group is chosen randomly, between MIN_GAIN and MAX_GAIN. Loudness within the motif is set by each note's amplitude.

The starting pitch of the motif-group is chosen randomly within the overall range set by MIN_PITCH and MAX_PITCH. In Modes 1-4, pitches are restricted to those specified in the pitch set/field (NOTEDATA file). 

Although times within the group are set by the motif, these may be quantized by PHGRID. AMPRISE sets the amount of amplitude change within the motif-group, while CONTOUR sets a patterns of crescendo and/or decrescendo within the group. 

As in ORNATE, the total duration of the group (tempo) may be expanded or shrunk by a multiplier (MULT_LOW/HIGH): 1 is no change, 0.5 doubles the speed etc. However, this does not change the time between the motifs (SKIPTIME). 

If more than one input is selected (optionally), the output sounds are selected randomly between FIRSTSND and LASTSND (both are time-varying).

The output is in stereo and POSITION and SPREAD optionally set the pan-position of event-groups. Soundshaper can handle stereo or multi-channel input: the channels are treated separately and the outputs are mixed after processing. If the multi-params checkbox is checked on the parameter page, different parameter sets can be used for each channel.

Variant:
Texture THmcMotifs (CDP: Tmotifsin) is a variant of TMotifs (q.v.). In this case, no matter how the motif is defined, all the pitches of the motif are 'forced' onto the pitch set/field: the motif is altered as necessary by warping/transposition/note-repetitions. THmcMotifs does not have a Mode 5.  Use the 'Choose Process' radio buttons to select the desired function.

MODES (common to all Texture processes)
 1 Single harmonic field*
 2 Changing harmonic fields*
 3 Single harmonic set*
 4 Changing harmonic sets*
 5 None (pitch chosen randomly within overall range)
* Harmonic sets (Modes 3/4) use only the specified pitches, while Harmonic fields (Modes 1/2) transpose these pitches across all octaves (within the overall range).  For Modes 2 and 4 (changing sets/fields), give some 'notes' a later time than others. (These times would be ignored in Modes 1 and 3.)

PARAMETERS
NOTEDATA: textfile of - 
 Line 1: MIDI 'pitch' of each input sound (real or arbitrary; 60= original pitch) 
followed by:
 rhythmic motif
 #N  - no. of notes in motif
 N lines each of:
 time instr_no pitch amplitude duration
   time: secs. 
   instr_no: not in use  - set it to 1 
   pitch: n/a set to 0
   amp: n/a - set to 0
   dur: n/a - set to 0 
followed by (Modes 1-4 only):
 pitch set/field 
 #N where N is number of following note-event lines  
 N lines, each of:
 time instr_no pitch amplitude duration
   time: secs. (Modes 2 & 4 only: changing set/field) 
   instr_no: not in use  - set it to 1 
   pitch: MIDI 1-127  - specifies pitch in harmonic set/field
   amp: n/a - set to 0
   dur: n/a - set to 0 
followed by:
 group motif (all modes)
 #N  - no. of notes in motif
 N lines each of:
 time instr_no pitch amplitude duration
   time: secs. 
   instr_no: not in use  - set it to 1 
   pitch: MIDI 1-127
   amp: MIDI 0-127
   dur: secs. 

OUT DUR: Minimum duration of output sound
  Range: 0.01 to 300 secs (notional limit)
SKIP TIME: in TMOTIFS, this is time between start of one motif and start of next
  Range: 0.001 to 100 secs
FIRSTSND: First sound to use, of infile sounds; set to 1 if only 1 input. T-V
  Range: 1-no.of input sounds; less than or equal to LASTSND
LASTSND: Last sound to use, of infile sounds; set to 1 if only 1 input. T-V
  Range: 1-no.of sounds;  greater than or equal to FIRSTSND
MIN GAIN: Minimum level of input events.  T-V
  Range: 1-127 (MIDI amp. values); default 64
MAX GAIN: Maximum level of input events.  T-V
   Range: 1-127 (MIDI amp. values); default 64
MIN PITCH: Minimum pitch  T-V  
  Range: MIDI 1-127, Mid-C=60, fractions allowed; less than or equal to MAX PITCH
MAX PITCH: Maximum pitch - Min pitch.  T-V
  Range: MIDI 1-127, Mid-C=60, fractions allowed; greater than or equal to MIN PITCH
PHGRID: a quantizing timegrid applying within the groups.  T-V
  Range: 0-1000 msecs  N.B: 0 is possible, but does not create chords.
GROUP SPACE: Pan event-groups:    T-V
  0 = No change; 1 = Scattered (default); 
  2/3 = group notes move to/from where the event is; 
  4/5 = group notes move from Left - Right /from Right - Left. 
GRPSPACERANGE: Spatial range of event-groups.    T-V 
  Range 0-1: default 1
AMP RISE: Amplitude change within groups.     T-V
  Range: 0-127; default 0
CONTOUR: Amplitude contour of groups.    T-V
  1=cresc; 2=flat; 3=decresc; 4=1 or 2; 5=1 or 3; 6=2 or 3; 0=mixture(default) 
MULT LOW: Minimum multiplier of total input duration of motif.    T-V 
  Range: 0.01-100 (<=Mult_high) 1=no change; 0.5 doubles speed; 2= 1/2 speed/ twice the duration
MULT HIGH: Maximum multiplier of total input duration of motif.    T-V 
  Range: 0.01-100 (>=Mult_low) 1=no change; 0.5 doubles speed; 2= 1/2 speed/ twice the duration

 Optional parameters common to all Texture processes:
(ATTEN): Overall attenuation of the output. Often needed to avoid overflow.  T-V
  Range: 0.00002-1
(POSITION): Central pan position of output sound.   T-V
  Range: 0 Left to 1 Right; default 0.5 Central; see SPREAD.
(SPREAD): Spatial spread of texture events.   T-V
  Range: 0-1;  0: Central-position only to 1: full-spread.
(SEED): Same seed-no produces same output on re-run
  Range: 0-1; default 0: differs each time

OPTIONS
 Whole Input: play all of input-sound(s), ignoring duration values 
 Fixed timestep between group notes
 Not fixed instr.: Each group NOT confined to a fixed instrument (default: fixed)

NOTES
Example of NOTEDATA file (Modes 1/3):
60		  - source pitch
#5		  - no. of notes in rhythmic motif
0.0 1 0 0 0	  - motif defined by time, (instr always 1); other fields n/a
1.0 1 0 0 0
1.5 1 0 0 0
2.0 1 0 0 0
2.5 1 0 0 0
#8		  - no. of notes in pitch set/field (Modes 1-4 only)
0.0 1 60 0 0	  - defined by time (Modes 2&4), instr (always 1), pitch, amp/durn n.a.)
0.0 1 61 0 0
0.0 1 63 0 0
0.0 1 64 0 0
0.0 1 66 0 0
0.0 1 67 0 0
0.0 1 69 0 0
0.0 1 70 0 0
#5		  - no. of notes in group motif	
0.0 1 60 70 0.3   - defined by time (Modes 2&4), instr (always 1), pitch, amp, durn
0.1 1 61 50 0.3
0.2 1 63 50 0.3
0.3 1 64 50 0.3
0.4 1 66 70 0.6

For further details on NOTEDATA files, see supplied file <User-folder>\TMotifs\TMOTIFSSReadMe.txt.
CDP examples are supplied as presets. Very detailed discussion also in CDP Help and Texture workshop.


[137]  THmcMotifs
SUMMARY
Texture THmcMotifs (CDP: texture tmotifsin) is a variant of TMotifs (q.v.). In this case, no matter how the motif is defined, all the pitches of the motif are 'forced' onto the pitch set/field: the motif is altered as necessary by warping/transposition/note-repetitions.

THmcMotifs does not have a Mode 5, as the motif and the pitch set/field are fully defined.

For details on Modes, parameters and NOTEDATA file, see TMOTIFS

//------------------------------------------------
[138]  GrnCount
SUMMARY
GrnCount (CDP: grain count) counts the grains found at a particular GATE level, MINHOLE and WINDOW-length. Grains can be regarded as silence-separated chunks of sound, where "silence" is where the signal falls below a certain level (defined by GATE). These settings are more important than the actual count. (In some cases, it may be useful to look at the sound in a sound editor and count the grains yourself.)  If the number found by GrnCount seems to match your expectations, you can use these settings in further GRAIN processes. 

GATE sets a level for a grain to be found: the level has to be higher than this to register a grain; the default is 0.3. MINHOLE sets a minimum length for a period of "silence" (i.e. level below GATE) to separate grains. If WINDOW is set, the gate level tracks the level found with the given WINDOW size (in msecs). Some experience with setting WINDOW in tracing envelopes would be useful here: its default fo envelopes is 5ms. LEN sets a maximum time between grains, but setting it lower than an obviously longer gap made no difference in a test (perhaps leave it unchecked?).

PARAMETERS
(LEN): maximum time between grains - not clear what this does.
  Range: 0.1 to file-length (secs)
(GATE): optionally set a minimum signal level to register a grain  (T-V)
  Range: 0-1 (Default 0.3)
(MINHOLE): optionally set a minimum duration of gaps between grains
  Range: 0.032 to file-length (secs) Default: 0.032 (32 ms)
(WINDOW): window size used to track signal level
  Range: 0 - file-length (ms)(0 = no tracking) Default 5ms?

OPTION
 Ignore last grain in source
 

[1381]  GrnAssess
SUMMARY
GrnAssess (CDP: grain assess) scans the file and finds a suitable GATE level and WINDOW length (the time-window used to track the signal level), such as:
Maximum grains found = 22 at gate value 0.001500 and windowlen 50ms.  
GATE and WINDOW are required for many GRAIN processes; this function assesses suitable values to use for these. It also complements GRAIN COUNT in counting the grains found at a particular GATE and WINDOW.

The function reports to the Main Page; text in the CDP Report Window can be copied. Click CLOSE (or Esc) to close the window. 

PARAMETERS: none


[139]  GrnOmit
SUMMARY
GrnOmit (CDP: grain omit) keeps a specified number of grains out of a set, eg. 3 out of every 5, 26 out of every 64 etc. KEEP can be time-varying but must not exceed the size of the set. The sound is contracted by omitting a certain proportion of grains, but the grains themselves are not contracted.

PARAMETERS
KEEP: number of grains to retain in every set (T-V)
  Range: 1-63
OUT OF: size of set 
  Range 2-64
(LEN): maximum time between grains - not clear what this does.
  Range: 0.1 to file-length (secs)
(GATE): optionally set a minimum signal level to register a grain  (T-V)
  Range: 0-1 (Default 0.3)
(MINHOLE): optionally set a minimum duration of gaps between grains
  Range: 0.032 to file-length (secs) Default: 0.032 (32 ms)
(WINDOW): window size used to track signal level
  Range: 0 - file-length (ms)(0 = no tracking) Default 5ms?

OPTION
 Ignore last grain in source

[140]  GrnDupl
SUMMARY
GrnDupl (CDP: grain duplicate) duplicates the grains found in a grainy sound, repeating each the specified number of times, in turn. Note that REPETITIONS=1 will not repeat any grain.

PARAMETERS
REPETITIONS: Number of times to play each grain
  Range 1 to 1000 (Full range: 1-32767)
(LEN): maximum time between grains - not clear what this does.
  Range: 0.1 to file-length (secs)
(GATE): optionally set a minimum signal level to register a grain  (T-V)
  Range: 0-1 (Default 0.3)
(MINHOLE): optionally set a minimum duration of gaps between grains
  Range: 0.032 to file-length (secs) Default: 0.032 (32 ms)
(WINDOW): window size used to track signal level
  Range: 0 - file-length (ms)(0 = no tracking) Default 5ms?

OPTION
 Ignore last grain in source

[1401] GrnRoll - LEGACY - not in use  (CDP: grain r_extend)

[1402] GrnExtend
SUMMARY
GrnExtend (CDP: grainex extend) extends an area containing grains, the start and end times being set by the user. The grains are found by envelope troughs and zero-crossings.

PARAMETERS
WINDOW: size of window in ms, determines size of grains to find.
  Range: 1.81406 to file-length/3 (msecs)
TROUGH: acceptable trough depth, relative to adjacent peaks 
  Range: >0 to <1  (Soundshaper default: 0.5 - see NOTE)
PLUS: how much duration to add to source
  Range: 0.1-300 secs (Full Range: 0.000002 to 3600 secs.)
START:  Time of start of grain material within source.
  Range: 0 to file-length (secs)
END :   Time of end of grain material within source.
  Range: 0 to file-length (secs) and > START

NOTE
It is possible to set TROUGH too low. Being relative to the peak level, if the signal doesn't drop that far in level, you may get the Error Message: "Insufficient grains to proceed" or "INSUFFICIENT PEAKS IN THE FILE AREA SPECIFIED".
 

[141]  GrnShuffle
SUMMARY
GrnShuffle (CDP: grain reorder) changes the order of grains by shuffling them at random. The shuffle code gives a list of grains as letters, then a colon (:), then the grain to start the next cycle with. For example, aedc:b means take a group of every five grains, re-ordered as aedc, then start the next group with grain 2 of the group, resulting in grains being re-ordered as: 1543,2654,3765 etc.

PARAMETERS
CODE: text box to enter shuffle code
  Format: list of grains as letters; colon; letter for next group
  Examples: adb:c = 142,364,586  acd:b = 134,245,356   where 1 is first grain, 2 is second etc.
(LEN): maximum time between grains - not clear what this does.
  Range: 0.1 to file-length (secs)
(GATE): optionally set a minimum signal level to register a grain  (T-V)
  Range: 0-1 (Default 0.3)
(MINHOLE): optionally set a minimum duration of gaps between grains
  Range: 0.032 to file-length (secs) Default: 0.032 (32 ms)
(WINDOW): window size used to track signal level
  Range: 0 - file-length (ms)(0 = no tracking) Default 5ms?

OPTION
 Ignore last grain in source

NOTE: In a test involving only 4 grains, the program could not excecute the desired pattern and returned a soundfile of no length instead of an error.

[142]  GrnPitch
SUMMARY
GrnPitch (CDP: grain repitch) changes the pitch of grains using a list of transposition values, which are rotated as necessary. If the grain-count is less than the number of transpositions, then not all transpositions are used (for example, 4 grains transposed out of a list of 7 transpositions).  In Mode 2 - repeat grains -  the full tranposition cycle is applied to each grain in turn, i.e., each grain is repeated using the full list of transpositions.

MODES
1 Cycle without repetition: apply 1st transposition to 1st grain, 2nd to 2nd grain etc., cycling round transposition list as necessary.
2 Repeat grains: apply whole transposition list to each grain, repeating grains

PARAMETERS
TRANSPOSE: text datafile -- list of transposition values, in semitones, one per grain
  In Mode 2, the full list is applied to each grain
  Range: -48 to 48 semitones (fractional values are permitted)
(LEN): maximum time between grains - not clear what this does.
  Range: 0.1 to file-length (secs)
(GATE): optionally set a minimum signal level to register a grain  (T-V)
  Range: 0-1 (Default 0.3)
(MINHOLE): optionally set a minimum duration of gaps between grains
  Range: 0.032 to file-length (secs) Default: 0.032 (32 ms)
(WINDOW): window size used to track signal level
  Range: 0 - file-length (ms)(0 = no tracking) Default 5ms?

OPTION
 Ignore last grain in source


[143]  GrnRhythm
SUMMARY
GrnRhythm (CDP: grain rerhythm) changes the duration of grains using a datafile of duration-multiplier values, which are rotated.  In "repeat grains" mode, the full data cycle is applied to each grain in turn. Note that the sound in the grains themselves is not lengthened or shortened; rather it is the length of the grain onsets that is changed (giving larger or smaller gaps).

MODES
1 Cycle; no repeats - apply 1st duration to 1st grain, 2nd to 2nd grain etc., cycling round duration list as necessary.
2 Repeat grains - apply whole duration list to each grain, repeating grains

PARAMETERS
DURNMULT: text list of duration multipliers, one per grain
  The multipliers increase or shorten the length of grain onsets, not the grains themselves
  In Mode 2, the full list is applied to each grain
  Range: 0.001 to 100 Full range: 0.001 to 1000 (<1 shortens grain onsets; >1 lengthens them)
(LEN): maximum time between grains - not clear what this does.
  Range: 0.1 to file-length (secs)
(GATE): optionally set a minimum signal level to register a grain  (T-V)
  Range: 0-1 (Default 0.3)
(MINHOLE): optionally set a minimum duration of gaps between grains
  Range: 0.032 to file-length (secs) Default: 0.032 (32 ms)
(WINDOW): window size used to track signal level
  Range: 0 - file-length (ms)(0 = no tracking) Default 5ms?

OPTION
 Ignore last grain in source


[144]  GrnMotif
GrnMotif (CDP: grain remotif) changes the pitch and duration of grains using a datafile of transposition  duration_multiplier values, which are rotated; i.e. grains are turned into a pitched and timed motif, which is repeated.  In "repeat grains" mode, the full data cycle is applied to each grain in turn.

MODES
1 Cycle; no repeats - apply 1st pitch/duration to 1st grain, 2nd to 2nd grain etc., cycling round pitch/duration list as necessary.
2 Repeat grains - apply whole pitch/duration list to each grain, repeating grains

PARAMETERS
TRN_DURN: Text datafile list of transposition values (semitones) and duration multipliers, one per grain
  The multipliers increase or shorten the length of grain onsets
  Transp'n range: -48 to 48 semitones (fractional values are permitted)
  Multiplier range: 0.001 to 100 Full range: 0.001 to 1000 (<1 shortens grain onsets; >1 lengthens them)
  Example file:
  ;tran duration
  0    1.0
  2    1.1
  4    1.2
  etc.
(LEN): maximum time between grains - not clear what this does.
  Range: 0.1 to file-length (secs)
(GATE): optionally set a minimum signal level to register a grain  (T-V)
  Range: 0-1 (Default 0.3)
(MINHOLE): optionally set a minimum duration of gaps between grains
  Range: 0.032 to file-length (secs) Default: 0.032 (32 ms)
(WINDOW): window size used to track signal level
  Range: 0 - file-length (ms)(0 = no tracking) Default 5ms?

OPTION
 Ignore last grain in source

NOTE
This process is a mixture of GrnPitch and GrnRhythm, which alter pitch and duration, respectively.

[145]  GrnTimewarp
SUMMARY
GrnTimewarp (CDP: grain timewarp) timestretches/shrinks by expanding / shrinking the times between grain onsets.

PARAMETERS
TSTRETCH: multiplies inter-grain times (>1 stretches, <1 shrinks)
  Range: 0.001 to 1000
(LEN): maximum time between grains - not clear what this does.
  Range: 0.1 to file-length (secs)
(GATE): optionally set a minimum signal level to register a grain  (T-V)
  Range: 0-1 (Default 0.3)
(MINHOLE): optionally set a minimum duration of gaps between grains
  Range: 0.032 to file-length (secs) Default: 0.032 (32 ms)
(WINDOW): window size used to track signal level
  Range: 0 - file-length (ms)(0 = no tracking) Default 5ms?

OPTION
 Ignore last grain in source

NOTE: This is simple way of changing the tempo, especially of a rhythmic signal like a drum sample.


[146]  GrnFind
SUMMARY
GrnFind (CDP: grain find) outputs the onset times of grains found at a particular GATE level, WINDOW-length and MINHOLE. Following GrnCount/Assess, which might produce these settings, you can save a textfile of the times, for use in some of the GRAIN functions or other applications where you might want to apply the grain rhythm to other events.

Note that in Soundshaper you must supply an output textfile name, though this is named by default to [Temp]\~findgrns.txt
The resulting textfile is automatically sent to the SPARE FILE slot and opened in the CDP Report Window. Close the window by clicking the CLOSE button (or Esc key). Close the SPARE FILE slot by unchecking the SPARE FILE checkbox.

PARAMETERS
(LEN): maximum time between grains - not clear what this does.
  Range: 0.1 to file-length (secs)
(GATE): optionally set a minimum signal level to register a grain  (T-V)
  Range: 0-1 (Default 0.3)
(MINHOLE): optionally set a minimum duration of gaps between grains
  Range: 0.032 to file-length (secs) Default: 0.032 (32 ms)
(WINDOW): window size used to track signal level
  Range: 0 - file-length (ms)(0 = no tracking) Default 5ms?

OPTION
 Ignore last grain in source

NOTE:
GrnFind is a useful way of finding onset times for use in another context, e.g. a mixfile.

[147]  GrnPosn
SUMMARY
GrnPosn (CDP: grain reposition) changes the grain onset times to those in the ONSETS datafile. OFFSET offsets all ONSET timings, adding silence at the start of the sound.

PARAMETERS
ONSETS: text datafile list of new grain onset times (secs)
OFFSET: offset value (secs) added to all grain timings, giving silence at beginning of soundfile.
  Range: 0-1000 (secs) Full range: 0-32767 (secs)
(LEN): maximum time between grains - not clear what this does.
  Range: 0.1 to file-length (secs)
(GATE): optionally set a minimum signal level to register a grain  (T-V)
  Range: 0-1 (Default 0.3)
(MINHOLE): optionally set a minimum duration of gaps between grains
  Range: 0.032 to file-length (secs) Default: 0.032 (32 ms)

OPTION
 Ignore last grain in source

NOTES
This is a very precise way of changing the rhythm of the grains. You might, for example, acquire the current onset times using GrnFind and alter them in a controlled way such as adding 1" to each time.

[148]  GrnAlign
SUMMARY
GrnAlign (CDP: grain align) aims to align grains in two soundfiles. Infile 2 provides the new grain onset times to which Infile 1's grains will be re-timed. (See NOTE 1!)

PARAMETERS
OFFSET: offset value (secs) added to all grain timings, giving silence at beginning of soundfile.
  Range: 0-1000 (secs) Full range: 0-32767 (secs)
(LEN): maximum time between grains - not clear what this does.
  Range: 0.1 to file-length (secs)
(GATE): optionally set a minimum signal level to register a grain  (T-V)
  Range: 0-1 (Default 0.3)
GATE2: minimum signal level to register grain in infile2 - must be set (T-V) 
  Range: 0 to 1 (typical value: 0.3)
(MINHOLE): optionally set a minimum duration of gaps between grains
  Range: 0.032 to file-length (secs) Default: 0.032 (32 ms)
(WINDOW): window size used to track signal level
  Range: 0 - file-length (ms)(0 = no tracking) Default 5ms?

OPTION
 Ignore last grain in source

NOTES
1. Soundshaper follows the normal CDP convention, which is that Infile 1 will be processed (re-timed by Infile 2). CDP's command line (and hence documentation) reverses this  so that it is Infile 2 which is altered and Infile 1 which provides the re-timing. This does not fit in with the Patchgrid.
2. In a test, the re-aligned sound had two added grains, but otherwise restored the original times of Infile 1.


[149]  GrnReverse
SUMMARY
GrnReverse (CDP: grain reverse) reverses the order of grains without reversing the grains themselves. 

PARAMETERS
(LEN): maximum time between grains - not clear what this does.
  Range: 0.1 to file-length (secs)
(GATE): optionally set a minimum signal level to register a grain  (T-V)
  Range: 0-1 (Default 0.3)
(MINHOLE): optionally set a minimum duration of gaps between grains
  Range: 0.032 to file-length (secs) Default: 0.032 (32 ms)
(WINDOW): window size used to track signal level
  Range: 0 - file-length (ms)(0 = no tracking) Default 5ms?

OPTION
 Ignore last grain in source

[1491] GrnEnv
SUMMARY
GrnEnv (CDP: grain grev): a number of functions manipulating grains found automatically by envelope troughs and zero-crossings. It locates elements of sound by searching for troughs and doesn't need a clear attack to recognise a grain, more appropriate for e.g. separating syllables in speech.

Several of the other grain functions are included as modes: Reverse, Repeat, Delete, Timestretch, and Put-grains (=position). As with other gated procedures, the trick is to get the TROUGH parameter right (estimate the amount of amplitude drop between the grains) and set a small window size if the grains are small. Unlike earlier Grain functions, GrnEnv can deal with groups of grains as a unit (like the Distort programs), though GROUP-COUNT can be set to 1. 

CDP's Mode 6 is implemented in Soundshaper as the Info function GrnTimes, which produces a set of times to adjust for Put-grains mode (CDP's Mode 7). These times can of course be used in other Grain processes or other processes requiring a list of times.

MODES
1 Reverse: reverse grain order (c.f. GrnReverse)
2 Repeat: repeat grains (c.f. GrnDupl)
3 Delete: delete some grains in each group (c.f. GrnOmit)
4 Omit: omit some grains in each group, replacing with silence
5 Timestretch: stretch or shrink grain onset times (c.f. GrnTimewarp)
6 Put Grains: position grains according to datafile of times (c.f. GrnPosn)

PARAMETERS
WINDOW (all modes): size of window, which determines the size of the grains to find
  Range: 2 to filelength/3 (ms)   CDP minimum: 1.81406  Typical value: 5ms
TROUGH (all modes): lowest amplitude of the envelope - acceptable trough relative to adjacent peaks (c.f. GATE in other Grain processes).
  Range: 0.001 to 1 (Full range: >0 to 1)
GROUP-COUNT (all modes): number of grains to treat as a unit in the operations (T-V)
  Range: 1-100
REPEATS (Mode 2): number of repetitions (T-V)
  Range: 1-100; value of 2 repeats each grain once (c.f. GrnDupl)
KEEP (Modes 3,4): number of grain-units to keep (T-V)
  Range: 1-255 and < OUT OF
OUT OF (Modes 3,4): size of set in KEEP/OUT OF pair, e.g. KEEP 3 OUT OF 5
  Range: 2-256 and > KEEP
TIMESTRETCH (Mode 5): degree of timestretch/shrink affecting grain onset times (or grain units) (T-V)
  Range: 0.01 - 1 - 100 (<1 shrinks; >1 stretches)
GRAIN TIMES (Mode 6): text datafile - list of grain position times, in milliseconds (see GrnTimes function).

NOTES
In tests, the process appeared to ignore the last grain.

It is possible to set TROUGH too low. Being relative to the peak level, if the signal doesn't drop that far in level, you may get the Error Message: "Insufficient grains to proceed" or "INSUFFICIENT PEAKS IN THE FILE AREA SPECIFIED".

[1492] GrnTimes
SUMMARY
GrnTimes (CDP: grain times) is an alternative method of locating grains, based on envelope troughs; the report is saved to a textfile. Times are given in milliseconds. See GrnExtend and GrnEnv for possible uses. 

PARAMETERS
WINDOW (all modes): size of window, which determines the size of the grains to find
  Range: 2 to filelength/3 (ms)   CDP minimum: 1.81406  Typical value: 5ms
TROUGH (all modes): lowest amplitude of the envelope - acceptable trough relative to adjacent peaks (c.f. GATE in other Grain processes).
  Range: 0.001 to 1 (Full range: >0 to 1)
GROUP-COUNT (all modes): number of grains to treat as a unit in the operations (T-V)
  Range: 1-100

NOTE
It is possible to set TROUGH too low. Being relative to the peak level, if the signal doesn't drop that far in level, you may get the Error Message: "Insufficient grains to proceed" or "INSUFFICIENT PEAKS IN THE FILE AREA SPECIFIED".


[1493] Noisextend
SUMMARY
Developed for speech, NOISEXTEND (CDP: grain noise_extend) searches for sybillants in speech (or noise materials in any input sound) and allows them to be sustained. It extends only the first noise component that it finds at the given parameter specifications. With the option set, the extended noise component can be saved on its own, perhaps providing useful source material for further transformations.

PARAMETERS
DURATION: Required length of noise part of output file. 
  Range: 0.01 to 32767 secs.
MIN FREQ: lowest 'frequency' acceptable as noise 
  Range:1000-22050 Hz.
MIN DURN:  Minimum duration of signal (within infile) acceptable as noise source, in milliseconds. 
  Range: 0-50 ms.
MAX DURN:  Maximum duration of signal (within infile) acceptable as noise source
  Range: 0? to file-length secs. NB: This parameter is in secs, whereas MIN DURN is in ms.

OPTION 
 Keep only the extended noise, discarding the rest of the file. Default: keep rest of input sound too.

NOTE
As NOISEXTEND extends only the first noise component, extending later ones could involve considerable editing and re-mixing. 

//---------------------------------------------

[150]  EnvCreate
SUMMARY
EnvCreate (CDP: envel create 1) creates a binary envelope file (.evl). 

ENVEL is a breakpoint file of time-amplitude pairs, which define the envelope. This data is fully editable in Graph-Edit,  
As in other envelope functions, WINDOW sets the time-resolution over which to average the envelope. 
 
 Before selecting the function, place the cursor on column 0 of an empty patchgrid row.
 Click the EDIT button for ENVEL to edit the data on the Graph Edit page and add/ modify points.

 When asked enter the desired file-length (max. 32767 secs). If this is more than the last time-value in the Edit Memo, an extra point will be added, which you do no need to keep.

MODE
 Create binary envelope file (.evl)

PARAMETERS
ENVEL: breakpoint file of time-amplitude pairs.  Edit this in Graph Edit. 
  time: 0 to 32767 (secs)
  amp: 0 to 1 
WINDOW: time resolution over which to average amplitude envelope 
  Range: 5 msecs to file-length (msecs)
OUTLENGTH: duration of required outfile 
  Range: 0 to 32767 secs
  NOTE: this parameter should be left UNCHECKED when you click RENDER (as it's not used by CDP)


[1501] EnvCreateB
SUMMARY
EnvCreateB (CDP: envel create 2) creates a breakpoint envelope file (.env / .brk). 

MODE
 Create breakpoint envelope file (.brk)

PARAMETERS
ENVEL: a breakpoint file of time-amplitude pairs, which define the envelope. Edit this in Graph Edit.
  time: 0 to 32767 (secs)
  amp: 0 to 1  
OUTLENGTH: duration of required outfile 
  Range: 0 to 32767 secs
  NOTE: this parameter should be left UNCHECKED when you click RENDER (as it's not used by CDP)
 
 Before selecting the function, place the cursor on column 0 of an empty patchgrid row.
 Click the EDIT button for ENVEL to edit the data on the Graph Edit page and add/ modify points.

 When asked enter the desired file-length (max. 32767 secs). If this is more than the last time-value in the Edit Memo, an extra point will be added, which you do no need to keep.

[1502] EnvEdit
SUMMARY
ENVEDIT is a Soundshaper procedure for editing a breakpoint envelope file (.env / .brk). Unlike EnvRedraw, there is no soundfile visible. 
Input is a breakpoint envelope file and the output is to the same cell and file, modifed.

PROCEDURE:
 Extract a breakpoint envelope from a soundfile on the Patchgrid using ENVELOPE | EXTRACT | Brkpt Envelope (Ctrl+Alt+N).
 Alternatively, load an .env file directly onto the patchgrid. (In this case, an .env file will load but a .brk file will not, though it can be loaded to the SPARE FILE slot.)
 Select ENVELOPE | EDIT breakpoint envelope, or GRAPH | Edit Breakpoint file. (The latter can load a SPARE FILE breakpoint file.) 
 If taken from a soundfile, the envelope graph has the time-base of the soundfile. 
 When finished click OK. The env. file should now have been modified. 
 To RE-EDIT the data select ENVELOPE | EDIT or GRAPH ! EDIT as before (double clicking as usual in Soundshaper does not work). 
 A shortcut approach is just to select ENVELOPE | EDIT breakpoint envelope from a soundfile cell, without extracting the breakpoint envelope. In this case, the output is not pur on the patchgrid but remains in your TEMP-OUTFILES folder under <soundfile-cell>.env.


[1503] EnvRedraw
SUMMARY
EnvRedraw is a Soundshaper procedure to extract a breakpoint envelope (.env / .brk) and edit it in Graph Edit. The input is a soundfile and the output is a modified breakpoint envelope. Unlike EnvEdit, the soundfile can be seen and played on the Graph Edit page.

PARAMETER
ENVEL: breakpoint file extracted automatically from the sound using default values.

PROCEDURE: 
 Click the EDIT button for ENVEL to edit the data on the Graph Edit page and add/ modify points. 
 In GraphEdit click SHOW WAV to see/play the soundfile. When finished editing, click OK. The ENVEL file name changes to <next-cell>.env. 
 If you manually edit values in the Edit Memo, click SAVE rather than SAVE CHANGES. 
 (If you do click SAVE CHANGES, please re-edit in Graph Edit to return the correct filename, even if you change nothing further.) 
 You can re-edit the data on the Graph Edit page as often as you like.
 When finished on the Parameter Page, click RENDER.

[151]  SetEnvExtr
SUMMARY
You can extract the time-varying amplitude of a sound (its 'envelope') either as a binary file (.evl) or a text breakpoint file of TIME AMPLITUDE pairs (amp values from 0 to 1).  SetEnvExtr sets default values that Soundshaper can use to extract this automatically when required.

WINDOW sets the the amount of time between measurements of the waveform's amplitude. The minimum value of 5 msecs is rather 'fine' and coarser values may be adequate, depending on the nature of the sound. A less fine resolution is more appropriate for .brk than .evl files, especially if you want to manipulate the data, e.g. in GraphEdit.

DATA sets the amount of data reduction for a breakpoint file: a low value (< 0.1) will keep most of the data, while a high one (> 0.5) will retain only the basic shape. 

MODES
 1 Set defaults for extracting binary envelope file (.evl)
 2 Set defaults for extracting breakpoint envelope file (.env /.brk)

PARAMETERS 
WINDOW: time resolution over which to average amplitude envelope 
  Range: 5 msecs to file-length (msecs)
DATA: amount of data reduction: lower values (e.g. 0.1) retain more detail; higher ones (>0.5) have less (smaller file).
  Range 0-1 
 
NOTES
Setting a suitable WINDOW size depends on how much information you want to extract. For example, if the sound tremolos through a crescendo, a small WINDOW size will track the undulations of the tremolo as well as the crescendo. A larger window will see the crescendo but miss the tremolo fluctuations. 

The .env file extension is intended for breakpoint envelope files, but .brk is acceptable too.
Data reduction (of a .brk file) is available separately in CDP's BrkEdit program. 
 
[1511] [1519] EnvExtract
EnvExtract and EnvAnal (no params.)

EnvExtract (CDP: envel extract) and EnvAnal (CDP: repitch analenv) extract the time-varying amplitude ('envelope') as a binary file (.evl). Various functions then allow you to transform the envelope and/or apply it to another soundfile (EnvImpose or EnvReplace). 

EnvExtract has one parameter, WINDOW, which sets the the amount of time between measurements of the waveform's amplitude. The minimum value of 5 msecs is rather 'fine' and coarser values may be adequate, depending on the nature of the sound. On the other hand, it may be more suitable to use breakpoint envelope files (see EnvExtractB) for reduced data, and binary envelope files (.evl) for a full analysis.

The separate function ENVANAL (CDP: repitch analenv), extracts the envelope (.evl) from a spectral analysis file (.ana). The advantage here is that the output data is synchronous with pitch or formant data extracted from the same analysis file. ti can then be combined with pitch (.frq) and formant data (.for) to re-create a spectral file (.ana), using MAKESPEC2. In Soundshaper, ENVANAL can be run with a soundfile input (the conversion to .ana being done behind the scenes). As it has no parameters, it is run directly. 

PARAMETER (for EnvExtract only)
WINDOW: time resolution over which to average amplitude envelope 
  Range: 5 msecs to file-length (msecs)

NOTES
Setting a suitable WINDOW size depends on how much information you want to extract. For example, if the sound tremolos through a crescendo, a small WINDOW size will track the undulations of the tremolo as well as the crescendo. A larger window will see the crescendo but miss the tremolo fluctuations. 

[1512] EnvExtractB
SUMMARY
EnvExtractB (CDP: envel extract 2) extracts the time-varying amplitude ('envelope') as a text breakpoint file of TIME AMPLITUDE pairs (amp values from 0 to 1).

WINDOW sets the the amount of time between measurements of the waveform's amplitude. The minimum value of 5 msecs is rather 'fine' and coarser values may be adequate, depending on the nature of the sound. A less fine resolution is more appropriate for .brk than .evl files, especially if you want to manipulate the data, e.g. in GraphEdit.

DATA sets the amount of data reduction for a breakpoint file: a low value (< 0.1) will keep most of the data, while a high one (> 0.5) will retain only the basic shape. 

PARAMETERS 
WINDOW: time resolution over which to average amplitude envelope 
  Range: 5 msecs to file-length (msecs)
DATA: amount of data reduction: lower values (e.g. 0.1) retain more detail; higher ones (>0.5) have less (smaller file).
  Range 0-1 

NOTES
Setting a suitable WINDOW size depends on how much information you want to extract. For example, if the sound tremolos through a crescendo, a small WINDOW size will track the undulations of the tremolo as well as the crescendo. A larger window will see the crescendo but miss the tremolo fluctuations. 

The .env file extension is intended for breakpoint envelope files, but .brk is acceptable too.
Data reduction (of a .brk file) is available separately in CDP's BrkEdit program. 

[ EnvAnal - no params: see EnvExtract

[1513] EnvtoBrk
SUMMARY
EnvtoBrk (CDP: envel envtobrk) converts a binary envelope file (.evl) to a breakpoint envelope file (.env or .brk) of TIME AMPLITUDE pairs (amp values from 0 to 1).

DATA sets the amount of data reduction: a low value (< 0.1) will keep most of the data, while a high one (> 0.5) will retain only the basic shape. 

PARAMETER 
DATA: amount of data reduction: lower values (e.g. 0.1) retain more detail; higher ones (>0.5) have less (smaller file).
  Range 0-1 

NOTES
The .env file extension is intended for breakpoint envelope files, but .brk is acceptable too.
Data reduction (of a .brk file) is available separately in CDP's BrkEdit program.
 
[1514] BrktoEnv
SUMMARY
EnvtoBrk (CDP: envel brktoenv) converts a breakpoint envelope file (.env or .brk) to a binary envelope file (.evl).

WINDOW sets the the amount of time between measurements of the waveform's amplitude. The minimum value of 5 msecs is rather 'fine' and coarser values may be adequate, depending on the nature of the sound. As the breakpoint file may already have been data-reduced  when created (by the DATA parameter), it is likely that you will not want a less resolution in the output .evl file -- in which case set WINDOW to 5ms.

PARAMETER
WINDOW: time resolution over which to average amplitude envelope 
  Range: 5 msecs to file-length (msecs); Soundshaper sets a maximum of 1000 ms, which may be exceeded.

[1515] EnvtodB - not supported

[1516] dBtoEnv
SUMMARY
dBtoEnv converts a breakpoint envelope file with dB values (instead of amps 0-1) to a binary envelope file (.evl).

dB envelope files are not supported in Soundshaper, but if you already have one, this function will help you convert it to a form that is supported.

[1517] brktodB - not supported

[1518] dBtoBrk
SUMMARY
dBtoBrk (CDP: envel dbtogain) converts a breakpoint envelope file with dB values (instead of amps 0-1) to a breakpoint envelope file (.env or .brk) of TIME AMPLITUDE pairs (amp values from 0 to 1).

dB envelope files are not supported in Soundshaper, but if you already have one, this function will help you convert it to a form that is supported.

[152]  [1521] [1522] [1523] EnvImpose
SUMMARY fo EnvImpose (CDP: envel impose) - also for EnvEImpose, EnvBImpose and EnvScaled.

EnvImpose (CDP: envel impose) superimposes the envelope of one sound onto another. The envelope to be imposed comes from Infile 2.  

Alternative functions EnvEImpose and EnvBImpose similarly impose an already-extracted envelope (.evl or .brk, respectively). There are no parameters for either function.

EnvScaled also imposes a breakpoint envelope from a second soundfile, but timescales it first so that it matches the length of the sound being processed. There are no parameters. As Soundshaper can extract the breakpoint envelope automatically, you need only click on the cell of the imposing sound when selecting Infile 2.

WINDOW (EnvImpose only) sets the the amount of time between amplituded measurements of the sound to be imposed. The default/minimum setting of 5ms is likely to give the best result (unless a coarser measurement is deliberately wanted). (You can test this by imposing a sound's envelope onto itself with a 5ms window; there is still a loss of quality.)

PARAMETER
WINDOW: time resolution over which to average amplitude envelope 
  Range: 5 msecs to file-length (msecs)

NOTES
Whereas EnvReplace replaces the envelope with that of another sound, with EnvImpose (and its variants) one sound acquires the amplitude shape of another, while retaining its own underlying dynamic changes as well. This classic technique, also know as 'envelope following' processes overall amplitude only; for a more detailed (frequency-related) imposition, use VOCODE in the spectral domain.

Any arbitrary envelope shape can be created as a breakpoint file and then imposed: 
 Load any soundfile to a free source cell (e.g. B_0) and extract its breakpoint envelope file. Any settings will do. 
 Hit F6 to send the .brk file to GraphEdit.
 Click RESET to clear the screen but retain the time and value scales. Rescale X (time) to the desired length; also set the required resolution of decimal points (6 is recommended for X and Y). 
 Click and move points as necessary to create the envelope - click OK when done: the EnvExtractB cell now refers to the altered datafile. 
 Use the EnvExtractB cell as Infile 2 for EnvBImpose or EnvScaled.

[1524] EnvdBImpose - not supported

[153]  [1532] [1533] EnvReplace
EnvReplace (CDP: envel replace) - also for EnvEReplace and EnvBReplace

EnvReplace (CDP: envel replace) replaces the envelope of one sound with that of another.  The replacement envelope comes from Infile 2. 

The alternative functions EnvEReplace and EnvBReplace similarly employ an already-extracted envelope (.evl or .brk, respectively) as the replacement. There are no parameters for either function.

WINDOW (EnvReplace only) sets the the amount of time between amplituded measurements of the sound to be imposed. The default/minimum setting of 5ms is likely to give the best result (unless a coarser measurement is deliberately wanted). (You can test this by imposing a sound's envelope onto itself with a 5ms window; there is still a loss of quality.)

PARAMETER
WINDOW: time resolution over which to average amplitude envelope 
  Range: 5 msecs to file-length (msecs)

NOTES
Although EnvReplace replaces the envelope, this affects the overall amplitude only; for a more detailed (frequency-related) replacement, use CROSS in the spectral domain.

Any arbitrary envelope shape can be created as a replacement breakpoint file: 
 Load any soundfile to a free source cell (e.g. B_0) and extract its breakpoint envelope file. Any settings will do. 
 Hit F6 to send the .brk file to GraphEdit.
 Click RESET to clear the screen but retain the time and value scales. Rescale X (time) to the desired length; also set the required resolution of decimal points (6 is recommended for X and Y). 
 Click and move points as necessary to create the envelope - click OK when done: the EnvExtractB cell now refers to the altered datafile. 
 Use the EnvExtractB cell as Infile 2 for EnvBReplace.

[1534] EnvdBReplace - not supported

[154] [155] [156] EnvWarp
EnvWarp (CDP: envel warp) - also for EnvEWarp (CDP: envel reshape) and EnvBWarp (CDP: envel replot)

EnvWarp reshapes the envelope of the current soundfile. The process first extracts the envelope using the WINDOW parameter, as used in EnvExtract. There are several different processes, given separate menu items in Soundshaper -- see MODES below.

The sister processes EnvEWarp and EnvBWarp have the same modes / functions, but instead transform a given binary envelope file (.evl) and breakpoint envelope file (.env/.brk), respectively. Thy also lack the WINDOW parameter as they do not need to extract an envelope. 

MODES
 1 Normalise - expand so that the loudest envelope point is at maximum amplitude (0dB).
 2 Reverse - reverse the envelope.
 3 Exaggerate - exaggerate the envelope contour: uses EXAGGERATE parameter (T-V).
 4 Attenuate - reduce the overall amplitude of the envelope: uses ATTENUATE parameter (T-V).
 5 Lift - raise the envelope amplitude by a fixed amount (opposite of Attenuate): uses LIFT parameter (T-V).
 6 Timestretch/shrink - stretch or shrink the envelope in time: note that this does NOT timestretch the sound itself. Uses TIMESTRETCH parameter (non T-V).
 7 Flatten - Even out the envelope contour (opposite of Exaggerate): uses FLATTEN parameter.

PARAMETER
WINDOW (EnvWarp only): time resolution over which to average amplitude envelope  - common to all EnvWarp modes.
  Range: 5 msecs to file-length (msecs)
EXAGGERATE (Mode 3 only): degree of boost
  Range: 0.01 to 100; < 1, low values are boosted; > 1, high values are boosted
ATTENUATE (Mode 4 only): multiplier by which to scale down the envelope 
  Range: 0 to 1
LIFT (Mode 5 only): lift envelope by fixed amount 
  Range: 0 to 1 (1=100% extra amplitude ?)
TIMESTRETCH (Mode 6 only): Multiplier to increase or shorten envelope times (soundfile length retained).
  Range: 0.001 to 1.0 to 1000 (<1 shrinks; >1 stretches)
FLATTEN (Mode 7 only): Number of envelope values over which to average (where WINDOW set length of 1 unit) 
  Range: 2 to 5000 (Windows)
   
[EnvEWarp
EnvEWarp (CDP: envel reshape) is a sister process to EnvWarp, which reshapes the envelope of the current soundfile. EnvEwarp has the same functions, but instead transforms a given binary envelope file (.evl). As in EnvWarp, each Mode defines a diffeent function.

MODES
 1 Normalise - expand so that the loudest envelope point is at maximum amplitude (0dB).
 2 Reverse - reverse the envelope.
 3 Exaggerate - exaggerate the envelope contour: uses EXAGGERATE parameter (T-V).
 4 Attenuate - reduce the overall amplitude of the envelope: uses ATTENUATE parameter (T-V).
 5 Lift - raise the envelope amplitude by a fixed amount (opposite of Attenuate): uses LIFT parameter (T-V).
 6 Timestretch/shrink - stretch or shrink the envelope in time: note that this does NOT timestretch the sound itself. Uses TIMESTRETCH parameter (non T-V).
 7 Flatten - Even out the envelope contour (opposite of Exaggerate): uses FLATTEN parameter.

PARAMETER
EXAGGERATE (Mode 3 only): degree of boost
  Range: 0.01 to 100; < 1, low values are boosted; > 1, high values are boosted
ATTENUATE (Mode 4 only): multiplier by which to scale down the envelope 
  Range: 0 to 1
LIFT (Mode 5 only): lift envelope by fixed amount 
  Range: 0 to 1 (1=100% extra amplitude ????)
TIMESTRETCH (Mode 6 only): Multiplier to increase or shorten envelope times (soundfile length retained).
  Range: 0.001 to 1.0 to 1000 (<1 shrinks; >1 stretches)
FLATTEN (Mode 7 only): Number of envelope values over which to average (where WINDOW set length of 1 unit) 
  Range: 2 to 5000 (Windows)   

[ EnvBWarp
EnvBWarp (CDP: envel replot) is a sister process to EnvWarp, which reshapes the envelope of the current soundfile. EnvBwarp has the same functions, but instead transforms a given breakpoint envelope file (.env/.brk). As in EnvWarp, each Mode defines a diffeent function.

MODES
 1 Normalise - expand so that the loudest envelope point is at maximum amplitude (0dB).
 2 Reverse - reverse the envelope.
 3 Exaggerate - exaggerate the envelope contour: uses EXAGGERATE parameter (T-V).
 4 Attenuate - reduce the overall amplitude of the envelope: uses ATTENUATE parameter (T-V).
 5 Lift - raise the envelope amplitude by a fixed amount (opposite of Attenuate): uses LIFT parameter (T-V).
 6 Timestretch/shrink - stretch or shrink the envelope in time: note that this does NOT timestretch the sound itself. Uses TIMESTRETCH parameter (non T-V).
 7 Flatten - Even out the envelope contour (opposite of Exaggerate): uses FLATTEN parameter.

PARAMETER
EXAGGERATE (Mode 3 only): degree of boost
  Range: 0.01 to 100; < 1, low values are boosted; > 1, high values are boosted
ATTENUATE (Mode 4 only): multiplier by which to scale down the envelope 
  Range: 0 to 1
LIFT (Mode 5 only): lift envelope by fixed amount 
  Range: 0 to 1 (1=100% extra amplitude ????)
TIMESTRETCH (Mode 6 only): Multiplier to increase or shorten envelope times (soundfile length retained).
  Range: 0.001 to 1.0 to 1000 (<1 shrinks; >1 stretches)
FLATTEN (Mode 7 only): Number of envelope values over which to average (where WINDOW set length of 1 unit) 
  Range: 2 to 5000 (Windows)
   
[1541] [1551] [1561] EnvLevel
ENVLEVEL (CDP: envel warp) - also for EnvELevel (CDP: envel reshape) and EnvBLevel (CDP: envel replot)
 
EnvLevel is a subset of CDP's Envelope-Warp suite of functions, separated within Soundshaper for purely practical reasons. 
Its sister functions EnvELevel and EnvBLevel are identical to it, but process binary envelope files (.evl) and breakpoint envelope files (.env / .brk), respectively. The WINDOW parameter is needed only in EnvLevel, which has to extract the envelope from the source sound.

These functions deal with the envelope level, as opposed to its shape (in EnvWarp). Each function has a different mode, and the envelope is extracted first of all, according to the WINDOW parameter. GATE and THRESHOLD are parameters used in several modes: GATE ignores signal below a given amplitude, whereas THRESHOLD is the opposite: only signal above a THRESHOLD level is considered. 

 Gate mode acts as a gating function, whereby envelope values below GATE level are zeroed.  
 Corrugate is similar: it looks for troughs (dips) in the envelope and zeros these to enhance the peaks. You have to guess the width of peaks/troughs in windows (of 5ms, or...): SEPARATION for peaks and ZERO for troughs.
 Expand mode exploits the difference between GATE and THRESHOLD: it raises the envelope level from a given GATE to a (higher) THRESHOLD, but also gates below this minimum. 
 Ducked mode also compares THRESHOLD and GATE: it lowers all levels above THRESHOLD to GATE level, e.g. in a piano or guitar sample it scales down the overall contour for the loudest levels (THRESHOLD 0.4 down to GATE 0.3). 
 Limit mode similarly squeezes any signal level above THRESHOLD into a range between it and an upper LIMIT.
 Ceiling mode raises the entire signal to the maximum; this includes any reverb tail (or equivalent), in which the noise component will be boosted. 
 Invert mode inverts the amplitudes around a given MIRROR level (N less than MIRROR becoming N more, and vice versa), while gating anything below GATE. 

MODES
 1 Gate: zero envelope values below gate level (uses GATE and SMOOTHING parameters).
 2 Invert: turn envelope upside down (uses GATE and MIRROR).
 3 Limit: squeeze amplitude: LIMIT is maximum; signal lower than THRESHOLD is unaffected (uses LIMIT and THRESHOLD).
 4 Expand: Scale up envelope from GATE to THRESHOLD so THRESHOLD is minimum (uses GATE, SMOOTHING and THRESHOLD, which must be set higher than GATE).
 5 Ceiling: Force whole envelope up to its maximum level (No further params.)
 6 Ducked: Levels above THRESHOLD are reduced to GATE level (uses GATE and THRESHOLD).
 7 Corrugate: Set troughs in the envelope to zero to tighten peaks

PARAMETERS
WINDOW (EnvLevel only): time resolution over which to average amplitude envelope 
  Range: 5 to file-length msecs
GATE: levels less than this set to 0 
  Range in Invert mode: 0 to < MIRROR
SMOOTHING: Delete low-level segments of less than SMOOTHING windows. 
  Range: 0 to 32767; 0 turns off effect
MIRROR (Invert mode 2): Inversion dividing point: levels are inverted to other side of mirror value 
  Range: > GATE to 1
LIMIT (Limit mode 3): Upper limit for Limit mode; above THRESHOLD. 
  Range THRESHOLD to 1
THRESHOLD: levels below THRESHOLD are unaffected; Expand mode 4: envelope is scaled as necessary so that THRESHOLD is the minimum amplitude. 
  Range: 0 to LIMIT
ZERO (Corrugate mode 7): Number of windows to set to zero per trough
  Range: 1 to < SEPARATION
SEPARATION: Minimum number of windows per peak 
  Range: 2 to 32767 windows (of 5ms each, or however WINDOW set).

[ EnvELevel
EnvELevel (CDP: envel reshape) is the same as EnvLevel (q.v.), but for processing binary envelope files (.evl). These functions deal with the envelope level, as opposed to its shape (in Envwarp). Each function has a different mode. GATE and THRESHOLD are parameters used in several modes: GATE ignores signal below a given amplitude, whereas THRESHOLD is the opposite: only signal above a THRESHOLD level is considered. 

 Gate mode acts as a gating function, whereby envelope values below GATE level are zeroed.  
 Corrugate is similar: it looks for troughs (dips) in the envelope and zeros these to enhance the peaks. You have to guess the width of peaks/troughs in windows (of 5ms, or...): SEPARATION for peaks and ZERO for troughs.
 Expand mode exploits the difference between GATE and THRESHOLD: it raises the envelope level from a given GATE to a (higher) THRESHOLD, but also gates below this minimum. 
 Ducked mode also compares THRESHOLD and GATE: it lowers all levels above THRESHOLD to GATE level, e.g. in a piano or guitar sample it scales down the overall contour for the loudest levels (THRESHOLD 0.4 down to GATE 0.3). 
 Limit mode similarly squeezes any signal level above THRESHOLD into a range between it and an upper LIMIT.
 Ceiling mode raises the entire signal to the maximum; this includes any reverb tail (or equivalent), in which the noise component will be boosted. 
 Invert mode inverts the amplitudes around a given MIRROR level (N less than MIRROR becoming N more, and vice versa), while gating anything below GATE. 

MODES
 1 Gate: zero envelope values below gate level (uses GATE and SMOOTHING parameters).
 2 Invert: turn envelope upside down (uses GATE and MIRROR).
 3 Limit: squeeze amplitude: LIMIT is maximum; signal lower than THRESHOLD is unaffected (uses LIMIT and THRESHOLD).
 4 Expand: Scale up envelope from GATE to THRESHOLD so THRESHOLD is minimum (uses GATE, SMOOTHING and THRESHOLD, which must be set higher than GATE).
 5 Ceiling: Force whole envelope up to its maximum level (No further params.)
 6 Ducked: Levels above THRESHOLD are reduced to GATE level (uses GATE and THRESHOLD).
 7 Corrugate: Set troughs in the envelope to zero to tighten peaks

PARAMETERS
GATE: levels less than this set to 0 
  Range in Invert mode: 0 to < MIRROR
SMOOTHING: Delete low-level segments of less than SMOOTHING windows. 
  Range: 0 to 32767; 0 turns off effect
MIRROR (Invert mode 2): Inversion dividing point: levels are inverted to other side of mirror value 
  Range: > GATE to 1
LIMIT (Limit mode 3): Upper limit for Limit mode; above THRESHOLD. 
  Range THRESHOLD to 1
THRESHOLD: levels below THRESHOLD are unaffected; Expand mode 4: envelope is scaled as necessary so that THRESHOLD is the minimum amplitude. 
  Range: 0 to LIMIT
ZERO (Corrugate mode 7): Number of windows to set to zero per trough
  Range: 1 to < SEPARATION
SEPARATION: Minimum number of windows per peak 
  Range: 2 to 32767 windows (of 5ms each, or however WINDOW set).

[ EnvBLevel
EnvBLevel (CDP: envel replot) is the same as EnvLevel (q.v.), but for processing breakpoint envelope files (.env /.brk). These functions deal with the envelope level, as opposed to its shape (in Envwarp). Each function has a different mode. GATE and THRESHOLD are parameters used in several modes: GATE ignores signal below a given amplitude, whereas THRESHOLD is the opposite: only signal above a THRESHOLD level is considered. 

 Gate mode acts as a gating function, whereby envelope values below GATE level are zeroed.  
 Corrugate is similar: it looks for troughs (dips) in the envelope and zeros these to enhance the peaks. You have to guess the width of peaks/troughs in windows (of 5ms, or...): SEPARATION for peaks and ZERO for troughs.
 Expand mode exploits the difference between GATE and THRESHOLD: it raises the envelope level from a given GATE to a (higher) THRESHOLD, but also gates below this minimum. 
 Ducked mode also compares THRESHOLD and GATE: it lowers all levels above THRESHOLD to GATE level, e.g. in a piano or guitar sample it scales down the overall contour for the loudest levels (THRESHOLD 0.4 down to GATE 0.3). 
 Limit mode similarly squeezes any signal level above THRESHOLD into a range between it and an upper LIMIT.
 Ceiling mode raises the entire signal to the maximum; this includes any reverb tail (or equivalent), in which the noise component will be boosted. 
 Invert mode inverts the amplitudes around a given MIRROR level (N less than MIRROR becoming N more, and vice versa), while gating anything below GATE. 

MODES
 1 Gate: zero envelope values below gate level (uses GATE and SMOOTHING parameters).
 2 Invert: turn envelope upside down (uses GATE and MIRROR).
 3 Limit: squeeze amplitude: LIMIT is maximum; signal lower than THRESHOLD is unaffected (uses LIMIT and THRESHOLD).
 4 Expand: Scale up envelope from GATE to THRESHOLD so THRESHOLD is minimum (uses GATE, SMOOTHING and THRESHOLD, which must be set higher than GATE).
 5 Ceiling: Force whole envelope up to its maximum level (No further params.)
 6 Ducked: Levels above THRESHOLD are reduced to GATE level (uses GATE and THRESHOLD).
 7 Corrugate: Set troughs in the envelope to zero to tighten peaks

PARAMETERS
WINDOW: time resolution over which to average amplitude envelope 
  Range: 5 to file-length msecs
GATE: levels less than this set to 0 
  Range in Invert mode: 0 to < MIRROR
SMOOTHING: Delete low-level segments of less than SMOOTHING windows. 
  Range: 0 to 32767; 0 turns off effect
MIRROR (Invert mode 2): Inversion dividing point: levels are inverted to other side of mirror value 
  Range: > GATE to 1
LIMIT (Limit mode 3): Upper limit for Limit mode; above THRESHOLD. 
  Range THRESHOLD to 1
THRESHOLD: levels below THRESHOLD are unaffected; Expand mode 4: envelope is scaled as necessary so that THRESHOLD is the minimum amplitude. 
  Range: 0 to LIMIT
ZERO (Corrugate mode 7): Number of windows to set to zero per trough
  Range: 1 to < SEPARATION
SEPARATION: Minimum number of windows per peak 
  Range: 2 to 32767 windows (of 5ms each, or however WINDOW set).

[1542] Corrugate  
This is a legacy page; for new applications, please see Corrugate mode in EnvLevel. 
[1552] ECorrugate
This is a legacy page; for new applications, please see Corrugate mode in EnvELevel.
[1562] BCorrugate
This is a legacy page; for new applications, please see Corrugate mode in EnvBLevel.

[1543] [1553] [1563] Trigger
TRIGGER (CDP: envel warp 13) - also ETrigger (CDP: envel reshape 13) and BTrigger (CDP: envel replot 13)

TRIGGER creates a new envelope of sudden on-bursts, triggered by the rate of rise of the current envelope. The envelope is defined in RAMPFILE, a text data file of TIME AMP values. GATE sets a trheshold for the trigger level: the average level must be greater than GATE (so set it low). To trigger the new envelope, a certain degree of envelope-rise is required (set in RISE), and for a minimum time (set in DURN).

PARAMETERS
RAMPFILE: breakpoint file (time amp) for the triggered bursts
WINDOW: time resolution over which to average amplitude envelope 
  Range: 5 to file-length msecs
GATE: Average level must be above GATE for triggering to occur 
  Range: 0-1
RISE: minimum loudness-step before triggering can occur
  Range: >0-1
DURN: Maximum duration of minimum loudness-step, to trigger 
  >= WINDOW durn.

NOTES
A typical application might be adding a tremolo flourish to a percussive sample, like a guitar note: the note would trigger the flourish, instead of simply dying away.

If triggering does not occur, because of the values set, the result appears to be silence! (That's all I get with this function... R.F.) 

[ ETrigger
[ BTrigger


[157]  Fades
FADES (CDP: envel dovetail)
  
FADES handles fade-ins and outs. FADE_IN is the length of the fade-in and FADE_OUT that of the fade out; either may be set to 0 if not applicable. The style of the decay slope is either linear or exponential: set in IN_TYPE and OUT_TYPE. Finally (for specialist applications?), TIMES allows the fade to be measured in samples rather than seconds.

Mode 2 offers a steeper slope and reduces the available parameters.

MODES
 1 FADE IN/OUT
 2 Steeper slope

PARAMETERS
FADE-IN: Duration of fade-in at start of soundfile - must not overlap with fade-out
  Range: 0 to soundfile-length secs. (or samples if that chosen under TIMES)  
FADE-OUT: Duration of fade-out at end of soundfile - must not overlap with fade-in
  Range: 0 to soundfile-length secs. (or samples if that chosen under TIMES)
FADE IN TYPE: envelope shape for the fade-in - linear or exponential
  Range: 0/1  0 linear or 1 exponential
FADE OUT TYPE: envelope shape for the fade-out - linear or exponential
  Range: 0/1  0 linear or 1 exponential
(TIMES): time unit used for ALL time parameters, EITHER Seconds (default) OR Samples
  Range: 0/1  0 seconds (default) or 1 Samples

NOTES
Fades in and out may be easier to achieve in a visual editor, unless they need to be incorporated within a patch for re-running. See also CURTAIL and EXPDECAY.
 
[158]  Curtail
CURTAIL (CDP: envel curtail) 

CYRTAIL creates a fade-out; it is similar to FADES but has wider choices, e.g. the choice of a gradual (Modes 1-3) or steeper decay slope (Modes 4-6). You can set the fade start and end times, or fade start and duration, or fade to the end of the file.  The fade may occur earlier than the end of the soundfile.

MODES
 1 Start/End times: Specify the times at which the fade is to begin and end
 2 Fade duration: Specify the fade by its duration and when it begins
 3 Fade to soundfile end: Specify when the fade begins and fade to the end of the soundfile.
 4-6 Steeper-slope versions of 1-3.

PARAMETERS
FADE START:  time at which to begin the fade (in seconds OR samples)
  Range: 0 to soundfile-length secs. (or samples if that chosen under TIMES)
FADE END: time at which to complete the fade (in seconds OR samples)
  Range: 0 to soundfile-length secs. (or samples if that chosen under TIMES); > START
FADE DURATION: length of fade 
  Range: 0 to soundfile-length secs. (or samples if that chosen under TIMES)
ENVELOPE TYPE:  envelope shape for the fade-out - linear or exponential
  Range: 0/1  0 linear or 1 exponential
(TIMES): time unit used for ALL time parameters, EITHER Seconds (default) OR Samples
  Range: 0/1  0 seconds (default) or 1 samples

NOTES
Like FADES, a fade-out may be easier to achieve in a visual editor, unless it needs to be incorporated within a patch for re-running. See also EXPDECAY.

[159]  Swell
SWELL (CDP: envel swell) 

SWELL emphasises a peak, around which the amplitude swells and then decays. The time of the peak (PEAKTIME) is user-defined  - it may or may not be an existing peak - and the swell shape is pre-defined, with either a linear (steeper) or exponential (more gradual) shape.

PARAMETERS
PEAKTIME: time in infile at which peak moment is located
  Range: 0 to soundfile-length (secs)
PEAKTYPE: type of swell shape.
  Range: 0/1 0 (linear) or 1 (exponential, the default) 

NOTES
To find suitable peaks, use PEAKENV (Envelope > Extract > Peak Envelope); or you might use the point of maximum amplitude (MAXSAMP: Info > Soundfiles > Max. level). 

[1591]  Swell & Spike (R8)
SWELL (CDP: envel swell) and SPIKE (CDP8 - provisional) 

SWELL emphasises a peak, around which the amplitude swells and then decays. The time of the peak (PEAKTIME) is user-defined  - it may or may not be an existing peak - and the swell shape is pre-defined, with either a linear (steeper) or exponential (more gradual) shape.

SPIKE is a more pronounced version of the same idea, spiking either at a single time, like SWELL, or at listed times. SPIKE adds controls for the up and downslope.

SOUNDSHAPER MODES
1 Swell at single time
2 Spike at single time
3 Spike at listed times 

PARAMETERS
PEAKTIME (Modes 1 and 2): time in infile at which peak moment is located
  Range: 0 to soundfile-length (secs)
PEAKS (Mode 3): datafile of peak times - listed as trough-peak-trough triples (times).  Adjacent troughs may be at the same time, but other times must advance.
SWELLTYPE (Mode 1 - SWELL): type of swell shape.
  Range: 0/1 0 (linear) or 1 (exponential, the default) 
UPSLOPE (Modes 2/3 - SPIKE): power value for the envelope slope before the peak(s)
  Range: 1 to 100
DOWNSLOPE (Modes 2/3): power value for the envelope slope aftere the peak(s)
  Range: 1 to 100
(MAXUP) (Modes 2/3): maximum duration of upward approach
  Range: 0-1 secs (0=no maximum)
(MAXDOWN) (Modes 2/3): maximum duration of downward slope
  Range: 0-1 secs (0=no maximum)

OPTION
All peaks max (Mode 3)

NOTES
To find suitable peaks, use PEAKENV (Envelope > Extract > Peak Envelope); or you might use the point of maximum amplitude (MAXSAMP: Info > Soundfiles > Max. level). 

[1592]  Flatten (R8)
FLATTEN (CDP8 - provisional) 

FLATTEN aims to even out the level of attacks in the source sound. It is particularly aimed at vocal sounds with distinctive attack (e.g. speech syllables). 
It has only two compulsory parameters: approximate ELEMENT SIZE and RISE TIME (CDP: 'shoulder') - the rise time to the changed level. This parameter is critical to the output and commonly generates a CDP Error "Window size not set". It must not be longer than than the distance from the segment edge to its peak. It's probably best set to the minimum value, and then increased from there. Higher values, if accepted, produce a quieter output. 

PARAMETERS
ELEMENT SIZE: Approx size of elements (e.g. syllables) in source. 
  Range 0.001 to 100 secs.
RISE TIME: Rise time in segment to changed level 
  Range: 20 to elementsize/2 mS
(TAIL): portion of end of sound to be treated as a whole segment 
  Range: 0 (default) to < file-length

NOTE: There is a similar CDP function which flattens the envelope: ENVWARP Mode 7 (CDP: envel warp 7). This is not as effective as FLATTEN for vocal sounds.


[160]  Attack
ATTACK (CDP: envel attack) 

ATTACK emphasises the amplitude at a particular point, which need not be at the start of the sound.
You can set the attack point where the sound exceeds a GATE level (Mode 1); at an approximate or exact  time (Modes 2/3); or at the maximum level in the soundfile (which the function will locate).
The attack and decay times (in msecs) of the attack peak are set in ONSET and DECAY respectively and ENVTYPE sets an exponential or linear shape for the attack. GAIN sets the amplitude, but is a multiplier: if the level would overload, the function generates an error message.

MODES
 1 Gated: Attack point where sound level first exceeds gate level.
 2 Approx time: Attack point at maximum level around an 'approx-time' (+/- 200 ms).
 3 Exact time: Attack point at an exact time.
 4 Max level: Attack point at maximum level in the soundfile.

PARAMETERS
GAIN: Amount to amplify the signal at the attack point
  Range: mulitiplier - 1 to 32767 (Soundshaper 1.0-100.0; may be exceeded.)
GATE: Threshold level to be reached for the attack point to be recognised.
  Range: 0-1
TIME:  of attack point.
  Range: 0 to file-length -5 msecs. 
ONSET: Attack onset duration: 'sharpness' of attack. (5-Filength msecs; max:32767)
  Range: 5 to file-length msecs (max. 32767).
DECAY: Attack decay duration in milliseconds 
  Range: 5 msecs to < duration of infile.
(ENV_TYPE): Envelope Type.   
  Range 0/1 0 linear, 1 exponential (default) 

[161]  EnvPluck - no longer supported
ENVPLUCK - aims to create a placking effect at start of sound. This process is no longer supported in Soundshaper and has been placed in the XTRA menu.

[162]  [1622] Tremolo
TREMOLO and TREMENV (CDP8 - PROVISIONAL)

TREMOLO is a classic treatment, producing a cyclic amplitude variation.  It uses a built-in Low-Frequency Oscillator (LFO), set in the traditional manner by size (DEPTH) and rate (FREQUENCY) of the amplitude variation. Above about 20 Hz frequency, the cycles are perceived as a pitch.
The FINENESS parameter narrows the width of the tremolo, leaving gaps between the tremoloed segments.

Mode 3 (TREMENV) is a variant of Tremolo, in which the tremolo variation does not take effect until after the sound's peak amplitude. 

MODES
 1 Linear interpolation: interpolate linearly between breakpoint frequencies (in FREQ)
 2 Logarithmic interpolation: interpolate logarithmically between breakpoint frequencies (in FREQ)
 3 Tremolo with width narrowed after peak (CDP8: tremenv)

PARAMETERS
FREQ: Tremolo frequency -- speed of the tremolo cycle.
  Range: 0-500 Hz   T-V
DEPTH: Degree of loudness variation.
  Range: 0-1 default 0.25   T-V
GAIN: Overall signal level (<1 reduces signal level).
  Range: 0-1 default 1   T-V
WINDOW (Mode3): size of window to extract envelope (CDP8 tremenv only)
  Range: 1 to 40 mS
FINENESS: Narrow the width of (leaves gaps between) the tremoloed segments. 
  Range: 1 to 100 (set > 1 to leave a gap).

NOTES
Above about 20 Hz frequency, the cycles will turn into pitch.

The FINENESS parameter is useful for creating "silence-separated events", which occur in several CDP programs, particularly in the RETIME suite and in some multi-channel spatial programs. A pulsed event can also be cut to create a small wave "packet" for use with TEXTURE programs.

Tremolo with WIDTH=1 is identical to the original Tremolo (CDP: envel tremolo). This program is still available for legacy purposes, to run pre-existing patches. Presets should also still be available, though they will not set the added FINENESS parameter, unless re-saved. 

See also: FLUTTER (tremolos distributed across mult-channel space). 
 
[1621] Flutter
FLUTTER (CDP: flutter)

FLUTTER produces a Tremolo effect across multi-channel space: on each cycle of the loudness fluctuation, a different set of output channels (CHANSEQ) fluctuates in loudness (rising and falling) while the other channels do not change in level. So the tremolo effect moves rapidly from one set of channels to another as it proceeds. 

Natively, the function requires a multi-channel input. In Soundshaper, if the infile is mono, it is converted to quad before processing (giving a 4-channel output).
N.B. The function has no OUTCHANS parameter. To achieve e.g. 8-channel output from a stereo input, first convert the latter to an 8-channel file by interleaving.

PARAMETERS
FREQ: Flutter frequency -- speed of the tremolo cycle
  Range: 0-120 Hz T-V
DEPTH: Degree of the loudness variation
  Range: 0-16  T-V
GAIN: Overall signal gain or attenuation (<1 reduces signal level).
  Range: 0-1-10, default 1
CHANSEQ: datafile - on each line a set of any input channels, one line per freq. cycle.
         When all lines have been used, the patterns are repeated.
  Range: 1- no. chans (max. 16)
  Example:  1 2 3 4
            2 3 4 5
            3 4 5 6 (tc.)

[1623] Tremenv
TREMENV (CDP8: tremenv - PROVISIONAL)

TREMENV is a variant of Tremolo  -- a classic treatment which produces a cyclic amplitude variation.  It uses a built-in Low-Frequency Oscillator (LFO), set in the traditional manner by size (DEPTH) and rate (FREQUENCY). Above about 20 Hz frequency, the cycles are perceived as a pitch. 

In TREMENV, the tremolo does not take effect until after the peak.
The FINENESS parameter narrows the width of the tremolo, leavingg gaps between the tremoloed segments.

MODES
 1 Linear interpolation: interpolate linearly between breakpoint frequencies (in TREMFREQ)
 2 Logarithmic interpolation: interpolate logarithmically between breakpoint frequencies (in TREMFREQ)

PARAMETERS
FREQ: Tremolo frequency -- speed of the tremolo cycle.
  Range: 0-500 Hz   T-V
DEPTH: Degree of loudness variation.
  Range: 0-1 default 0.25   T-V
GAIN: Overall signal level (<1 reduces signal level).
  Range: 0-1 default 1   T-V
FINENESS: Narrows the width of (leaves gaps between) the tremoloed segments. 
  Range: 1 to 100 (set > 1 to leave a gap).

NOTES
Above about 20 Hz frequency, the cycles will turn into pitch.

The WIDTH parameter is useful for creating "silence-separated events", which occur in several CDP programs, particularly in the RETIME suite and in some multi-channel spatial programs. A pulsed event can also be cut to create a small wave "packet" for use with TEXTURE programs.

Tremolo with FINENESS=1 is identical to the original Tremolo (CDP: envel tremolo). This program is still available for legacy purposes, to run pre-existing patches. Presets should also still be available, though they will not set the added WIDTH parameter, unless re-saved. 

To test this function, you could create a peak using SWELL or SPIKE, followed by TremEnv with a fairly high frequency and depth.

[1622] TREMOLO
TREMOLO (CDP: tremolo)

TREMOLO is a classic treatment, producing a cyclic amplitude variation.  It uses a built-in Low-Frequency Oscillator (LFO), set in the traditional manner by size (DEPTH) and rate (FREQUENCY). Above about 20 Hz frequency, the cycles are perceived as a pitch.

In the revised Rel.7 version (CDP: TREMOLO2), the additional parameter FINENESS leaves gaps between the tremoloed segments.

MODES
 1 Linear interpolation: interpolate linearly between breakpoint frequencies (in TREMFREQ)
 2 Logarithmic interpolation: interpolate logarithmically between breakpoint frequencies (in TREMFREQ)

PARAMETERS
FREQ: Tremolo frequency -- speed of the tremolo cycle.
  Range: 0-500 Hz T-V
DEPTH: Degree of loudness variation.
  Range: 0-1 default 0.25  T-V
GAIN: Overall signal gain
  Range: 0-1 default 1  T-V
FINENESS: Increasingly narrows the width of (leaves gaps between) the tremoloed segments. 
  Range: 1 to 100 (1 has no effect; set to > 1 to leave a gap).

NOTES
Above about 20 Hz frequency, the cycles will turn into pitch.

The FINENESS parameter is useful for creating "silence-separated events", which occur in several CDP programs, particularly in the RETIME suite and in some multi-channel spatial programs. A pulsed event can also be cut to create a small wave "packet" for use with TEXTURE programs.

(Tremolo with FINENESS=1 is identical to the original Tremolo (CDP: envel tremolo). 

[163]  Cyclic
CYCLIC (CDP: envel cyclic) 

CYCLIC creates an envelope waveform of a cyclic nature, which can then be applied to a sound or converted to a breakpoint file for any purpose. Output is binary envelope file (.evl); note that a name must be given for this file.

MODES
 1 Attack: create rising envelope shapes in a binary envelope file (.evl)
 2 Decay: create falling envelope shapes in a binary envelope file (.evl)
 3 Troughed: create falling and rising shapes in a binary envelope file (.evl)
 4 User-defined: create envelope file with user-defined shape of time-amp pairs

PARAMETERS
ENVEL (Mode 4): breakpoint file of time - amplitude.
  Range: time 0-32767 secs; amp: 0-1
  Time units are relative, as envelope is time-scaled to CELL DURN.
WINDOW: time resolution over which to average amplitude envelope. 
  Range: 5 to file-length msecs
DURATION: Length of outfile required.
  Range: 0.01 - 32767 secs (Soundshaper: 0.01-300, which may be exceeded.)
CELL DURN: Duration of individual repeated units. 
  Range: 0.01-32767 secs (Soundshaper: 0.01 - 60, which may be exceeded.)
PHASE: where in the cell envelope to begin output.
  Range: 0-1; 0=start, 1=end of cell

[164]  Timegrid
TIMEGRID (CDP: envel timegrid) 

TIMEGRID cuts the file into fixed-length segments extracted to separate files, which may be placed on the Patchgrid, if sufficient rows are available. The segments are left in position: each outfile is of the original length, with the segment preceded and followed by silence. (c.f MASKS, which does the opposite, masking portions with silence). x determines how many segments are cut and Y of what length

PARAMETERS
COUNT: Number of 'grids' or cuts and hence output files each of original length 
  Range: 2-32
WIDTH: Duration of each segment (secs); NB segments are consecutive not overlapping
  Range: Splice-length (0.02) to file-length secs.
SPLICE: Length of splice slope 
  Range: 2-1000 ms

[165]  ExpDecay
EXPDECAY (CDP: envnu expdecay) 

EXPDECAY complements the functions FADES and CURTAIL by offering a simple exponential fade-out with a defined start and end time.  This is probably easier to use than the other functions.

PARAMETERS 
START TIME: Time in the file at which the decay begins
  Range: 0 to soundfile-length secs. 
END TIME: Time at which the decay reaches zero level
  Range: 0 to soundfile-length secs. 

[166]  PeakEnv
PEAKENV (CDP: envnu peakchop 2) 

PeakEnv isolates peaks in the soundfile and extracts an envelope based around these peaks.
The default values appear to work well in most cases. SKEW sets whether the envelopes surrounding each peak will centre on the peak, or the envelope will start at the peak or end at it.

PARAMETERS
WINDOW: window size for extracting envelope 
  Range: 1-64ms; default 50
PEAKWIDTH: width of retained peaks; < min distance betw. peaks  T-V
  Range: 1-64 ms; default 20mS.
RISETIME: rise time from zero to peak  T-V
  Range: 1-64 ms; default 10ms
(GATE): level (relative to maximum) below which peaks are ignored 
  Range: 0-1, default 0
(SKEW): envelope centring on peak 
  Range: 0-1; peak at envelope start(=0) / end (=1), centred=0.5; default 0.25  


//----------------------------------------------------
[168]  MixMany
MIXMANY (CDP: submix mergemany) 

MixMany is a quick multimix function. It takes a number of input files with the same number of channels and mixes them.
To avoid any clipping, it first calculates the maximum output sample and then adjusts the level of each input file. 

PARAMETERS: none

[169] MergeTwo
MERGETWO (CDP: submix merge) 

MergeTwo mixes two sounds (mono, stereo or m-c), with a number of optional parameters. The sounds need not have the same channel-count (unless they are m-c). The options are: STAGGER (time-offset), SKIP the start of Infile 2, SKEW the level of Infile 1 (higher or lower gain than Infile 2), START the mix later than time 0, END at the time specified. To avoid possible clippling, the function reduces each source sound to half-level before mixing.

PARAMETERS
(STAGGER): Infile2 starts this number of seconds after Infile 1.
  Range: 0 - Infile1-length (secs)
(SKIP): Infile 2 starts this number of seconds into the sound.
  Renge: 0 - Infile2-length (secs). As Soundshaper's parameter page does not know this length, the range shows the length of Infile 1. If this issue is critical, note the length of Infile 2 when selecting it on the Main page.
(SKEW): Soundfile1 has SKEW times more gain than Soundfile 2. Note that values <1 give Soundfile 1 a relatively lower level than Soundfile 2 (depending of course on their relative balance before mixing).
  Range: 0.001 to 10  (Full range: 0.000031 to 32767)

SEE ALSO: MixTwo - quick mix without parameters (also uses CDP submix merge).

[1691] MixBalance
MIXBALANCE (CDP: submix balance)

MixBalance mixes two sounds, with a balance control (BALANCE) and optional START and END times. Mono and stereo soundfiles may be mixed, but multi-channel files must have the same channel-count (including mixing stereo and m-c: not permitted).

PARAMETERS
(BALANCE): Range of 0-1 represents 0-100% of Infile 1 and 100%-0% of Infile 2, i.e. the level of Infile1 is multiplied by Balance, while that of Infile2 is multiplied by the inverse of BALANCE.
  Range: 0-1 (0 = 100% of Infile2 and 0% of Infile 1; 1=100% of Infile1 and 0% of Infile2)
  Default: 0.5 T-V
(START): start the mix at the time specified
  Range: 0-Infile1 length
(END): stop the mix at the time specified
  Range: 0-Infile1 length

NOTES
A time-varying balance can be used to control the degree of effect of many other processes; e.g. you could have a progressive reverberation from dry to wet, by changing the balance from Infile 2 (dry) to Infile 1 (wet). 

[1692] MixTwo
MIXTWO (CDP: submix merge)

MixTwo makes a quick mix of 2 soundfiles, with no parameters. The files can have different channel count and the function supports multi-channel files.
See also: MergeTwo, which has parameter controls.

PARAMETERS: none

[1693] PREMIX
PREMIX

PreMix is a Soundshaper composite function comprising PAN, PRESCALE and START-TIME. The aim is to provide time-varying Pan and adjustable start-time prior to mixing with MixTwo, MixMany or Mix. In particular, Mix has no time-variation for Pan or Level and the mix always starts from time 0 even if set otherwise. Inputs can be Mono or stereo; output is in stereo.

PARAMETERS
PAN: spatial position (T-V).  Range -1 (L) to 0 (C) to +1 (R), as in Pan function. Values <-1 or >+1 attenuate the signal to simulate distance.
PRESCALE: adjust input level, as in Pan, prescale parameter.  
  Range: 0.0001 to 1 (full range: 0.000031 to 2, default 0.7; 1 is full gain)
START-TIME: delay start of sound by prefixin silence, as in PreSilence function. (Range 0-100 secs; can be more)

NOTE: Pre-scale does not currently provide time-variable level.

[170]  Crossfade
CROSSFADE (CDP: submix crossfade) 

Crossfade performs a quick cross-fade between two sounds of the same channel-count. The crossfade is either of linear or cosine shape; there are also optional STAGGER and START/END parameters.

MODES
 1 Linear
 2 Cosinusoidal

PARAMETERS
(STAGGER): Infile2 starts this number of seconds after Infile 1.
  Range: 0 - Infile1-length (secs)
(START): start the mix at the time specified
  Range: 0-Infile1 length
(END): stop the mix at the time specified
  Range: 0-Infile1 length


[172]  Inbetween
INBETWEEN (CDP: submix inbetween) 

InBetween generates multiple outputs representing a range of balances between two inputs (called a "transition set" in CDP Help). Infile1  predominates at the start and Infile 2 at the end of the set. Files must have the same channel-count. (No error-message is given if this is not done.) Soundshaper places the outputs on the Patchgrid if there are enough rows, though optionally you can save these elsewhere.

MODES
 1 Automatic relative levels for count inbetween files
 2 User-defined relative levels, as a single ratio or as a series of ratios in a textfile.

PARAMETERS
COUNT (Mode 1): Number of Inbetween files to generate. Amplitude ratios for the new sounds are generated automatically.
  Range: 1-999 (if > than no. of rows, must be saved outside the Patchgrid).
RATIOS (Mode 2): a single ratio or textfie list of ratios, defining the relative levels of the outfiles produced, in ascending order. Levels are those of Infile2 relative to Infile1. Number of outfiles = number of ratios in file. There must be an even number of ratios in the file. 
 Range: 0-1 (level)

NOTES
The outfiles could be mixed to be triggered in quick succession, giving a progressively shifting balance. Or the different balances might be interleaved in multi-channel space to produce the equivalent of a complex fixed-position pan.

[173]  Inbetween0
INBETWEEN0 (CDP: submix inbetwen2) 

InBetween0 is similar to InBetween, but the function attempts to synchronise the zero-crossings in the two input soundfiles. For CUTOFF, the 'cycles' involved are "wavesets" - cycles baed on zero-crossings, as also used in the DISTORT suite.

PARAMETERS
COUNT (Mode 1): Number of Inbetween files to generate. Amplitude ratios for the new sounds are generated automatically.
CUTOFF: frequency above which zero-crossing 'cycles' ignored.
 Range: 10-22050Hz

[174]  MixGetLevel
MIXGETLEVEL (CDP: submix getlevel) 

MixGetLevel tests the level in a mixfile or Mix List prior to mixing. The report is displayed in a report window. Click CLOSE (or Esc) to Close the window. The text may be copied (CTRL+C). To operate, all soundfiles in the Mix List or mixfile must exist. (For example, be careful of previous temporary file which no longer exist.) 
A typical report for Mode 1 is:
	NORMALISATION REQUIRED : 0.688686   OR  -3.2396dB
Note that "normalisation" is in fact a maximum level, not a multiplier to take the level up to 0dB. If you want to normalize the sound, do this after the mix.

MODES
1 Maximum Level: finds the maximum level (maxsamp) across the whole mixfile
2 Clipping: find the times where clipping would occur
3 Max level and clipping: find the maximum level and times where clipping would occur

PARAMETERS
(START LINE) / (END LINE): Optionally specify a range of lines in the mixfile that are processed.

NOTES
This function enables the mix to be tested before being run. As the levels of input sounds are added together, clipping is very likely to occur. Use this together with ATTENUATE, especially the Mix Page's "Attenuate Mix" slider, which applies an overall gain reduction on mixing. 

[175]  MixAtten
MIXATTEN (CDP: submix attenuate) 

MixAtten alters all the levels in a mixfile by GAIN, either reducing them (GAIN <1) or raising them (GAIN>1). A limited range of mixfile lines to attenuate may be specified
(START LINE and END LINE).

PARAMETERS
GAIN: multiplier applied to all levels in the mixfile (Range >0.00 - 1 - >1 Max 32767).
(START LINE) / (END LINE): Optionally specify a range of lines in the mixfile that are processed.
 

[176]  MixShuffle
MIXSHUFFLE (CDP: submix shuffle) 

MixShuffle shuffles the sounds in a mixfile, duplicating, omitting, reversing the order, etc. A limited range of mixfile lines to shuffle may be specified (START LINE and END LINE).

MODES
1 Duplicate lines: each line is duplicated
2 Reverse order: reverses the order of the filenames, but preserves the parameter values previously associated with soundfile 1, 2, 3, etc.
3 Scatter order: randomly changes the order of the filenames, preserving parameter values as in Mode 2.
4 Replace with 1st: the first filename is applied to all lines (or within specified range). This enables the parameters of a previous mix to be applies to just one sound. 
5 Omit lines, closing timegaps. Mix lines must be in time order: see MixTimewarp Mode 1. A range of lines would normally be specified.
6 Omit alternate lines, closing timegaps. Mix lines must be in time order: see MixTimewarp Mode 1. A range of lines would normally be specified.
(7 Duplicate and rename: NOT SUPPORTED, as incompatible with Mix Page format.)

PARAMETERS
(START LINE) / (END LINE): Optionally specify a range of lines in the mixfile that are processed.

NOTES
CDP Mode 7 duplicate and rename is not supported, as it is incompatible with the Mix Page format. However, the Mix List has several facilities for introducing soundfiles into the mix.

[178]  MixSpacewarp
MIXSPACEWARP (CDP: submix spacewarp) 

MixSpacewarp alters the pan values in a mixfile or Mix List. Although pan values are editable on the Mix Page, this function allows overall changes to be made, such as narrowing, randomising or shifting all pan positions in sequence. 

MODES
1 Fixed positon: all sounds are placed in same pan position (stereo files become mono before being placed).
2 Narrow: narrow the spatial spread.
3 Leftwards: sequence the spatial positions leftwards over the range PAN1 to PAN 2 (stereo files become mono).
4 Rightwards: sequence the spatial positions rightwards over the range PAN1 to PAN 2 (stereo files become mono).
5 Randomise: randomly scatter spatial positions over the range PAN1 to PAN 2 (stereo files become mono).
6 Alternating: as Mode 5 but alternate between left of centre (<0) and right of centre (>0).
7 Invert alternate (no params): invert stereo in alternate mixlines; use to avoid clipping.
8 Invert stereo: invert stereo position in line specified (LINENO). (Quicker to change the value in the Mix List?)

PARAMETERS
PAN 1 (Modes 1-6):  range -1 (L) to 0 (C) to +1 (R), as in PAN. Values <-1 or >+1 attenuate the signal to simulate distance.
PAN 2 (Modes 3-6):  vaolues as PAN 1, but should be a higher value than PAN 1 to provide a range from PAN1 to PAN2.
NARROW (Mode 2): narrows the spatial spread (0-1; 0 is mono, 1 is widest)
(START LINE - Modes 1-6) / (END LINE - Modes 1-6): Optionally specify a range of lines in the mixfile that are processed.
LINENO (Mode 8): number of mixfile line to invert stereo. (Do not exceed the length of the mixfile!) 


[179] Mix
MIX (CDP: submix mix) 

MAKING A SIMPLE MIX
MIX mixes together mono or stereo soundfiles listed in a text MIXFILE (.mix). The mixfile format specifies TIME, LEVEL and (optionally) PAN-POSITION, plus LEVEL2 and PAN2 in the case of a stereo file.  Though neither level or pan can be time-varying, the format is quite flexible in that the same sound can be specified more than once and start times can be in any order. 

MIX is a quick-mix mode in which you do not normally see or edit the Mix List/mixfile. However, to use a sound more than once, click Add To Mix - this opens the Mix List and in effect switches to MixEdit (q.v.). 

SELCTING SOUNDS
Infiles are selected on the Main page, initially, and the selected sounds are listed in the Soundfiles List. Click Add Soundfile (CTRL+O) to add further sounds to the list, selectable from any folder. Click the sound in the list before editing its parameters. Multi-channel sounds may be included, but are restricted to Chans 1 and 2.

TIME, LEVEL and PAN VALUES
Use the dedicated sliders and edit boxes to set time, level(s) and pan(s). When finished, click MIX button to run the mix. At this point you can save a mixfile for future editing; for details see the Soundshaper manual (Mix Page reference).

The amplitude of overlapping soundfiles is summed, so overloaded levels can be a problem. If individual levels are set relative to each other, it is safest to attenuate the output using the Attenuate slider and then follow the mix output with NORMALISE. 

PARAMETERS
MIXFILE: Up to 1000 lines of:
SOUNDFILE  TIME  NO_CHANS LEVEL  PAN  (LEVEL 2)  (PAN2)

SOUNDFILE is either a temp. file selected from your TEMP.OUTFILES folder (e.g. ~A_1) or is another file selected from the same or another folder. (Files selected from another folder should show the full path; if inserted manually into a mix list, ensure the full path is given.)  The same sound can be included more than once.

TIME   start time in seconds. Mix lines need NOT be in time order. Two or more sounds can start at the same time.
	NOTE: Silence at the start of a CDP mix is ignored: splice it on afterwards, if it's needed. See PreSilence. 
	(The CDP commandline option -s for a later Start time does not in appear to generate an initial silence.)

NO_CHANS  number of channels (1 or 2). Mono and stereo files may both be included in a mixfile. 

LEVEL  range is 0-1. CDP allows for dB values (e.g. -3dB); on the MIX page these would have to be edited manually into a mix list (and the Mix Parameters panel of faders and edit boxes doesn't support them.)

PAN  range -1 (L) to 0 (C) to +1 (R), as in PAN. Values <-1 or >+1 attenuate the signal to simulate distance.

(LEVEL 2)/ (PAN 2) are for right channel of a stereo pair, where LEVEL/PAN represent the left channel. 

(ATTENUATION): optional attentuation of output mix.
  Range: 0-1

NOTES
MIX is ideal for creating textural mixes of sounds in close succession. On a larger scale, it is suitable if sound-complexes are mixed into sections and sections into a composition.

[1791] MchMix
MCHMIX (CDP: newmix multichan) 

MchMix mixes sounds in multi-channel space, using a multi-channel mixfile (.mmx). The mix parameters are similar to MIX, except that pan is replaced by channel routing. The basic unit of the file format is: ROUTING  LEVEL where routing is shown as IN_CHAN:OUT_CHAN
For example: 1:2 0.5  routes source channel 1 to out channel 2, level 0.5.

The spatial position is determined by the relative balance of levels in different output channels, so it's quite normal to route the IN_CHAN to more than one OUT_CHAN with different levels.

A full line for one sound is:
SND_NAME  START_TIME  CHANS (of input sound)  ROUTING (e.g. 1:3) LEVEL  (ROUTING LEVEL ...)
    
HOW TO SET UP A MULTI-CHANNEL MIX
 Source(s) selected on the Main page are listed in the Soundfile list; or click Select Soundfile (CTRL+O) to add further sounds to the list.
 The Multichan checkbox should be pre-selected. Leave this checked.
 Select the no. of output channels  -- see MultiChan Mix panel. (Up to 16 are supported; though only 8 routing buttons are given, this could be edited as text -- see below.)
 Click on a source; adjust its TIME, LEVEL and ROUTING using the sliders/edit boxes and ROUTING buttons. (Note that you can't select channels which don't exist.)
- - - - - - -
 Click ADD PARAMS - this puts ROUTING and LEVEL into an edit box. 
 Optionally select a different ROUTING and LEVEL for the sound and click ADD PARAMS. The new parameters are added to the edit box (which you can adjust as text, as necessary).
 When finished, click INSERT IN MIX. A new full line is created. (The first line is preceded by the number of output channels.)  
 The text is entered into a fully-editable text "memo". E.g. to repeat an entry with a new time, copy and paste the parameter data back into the white edit box; set a new time; then click INSERT IN MIX.
- - - - - - -
 When finished, click the MIX button (top-right).
 An immediate re-edit will still show your settings on this page; if you have used the page for other mix operations before re-editing, re-load the mix file before editing and re-running it.
  

[180]  MixSync
MIXSYNC (CDP: submix sync, submix syncattack) 

MixSync synchronises the attacks (Mode 1), mid-times (Mode 2) or end times (Mode 3) of sounds in a CDP mixfile.
Mode 1 (SYNCATTACK) finds the highest level in each file, and aligns the sounds by adjusting their start times. (The loudest part of a sound might not be near the start, of course.) If "Find Peak Power" is checked, the function looks for the largest region of high amplitude.

SYNC (Modes 2 and 3) aligns soundfiles either at their mid or end points, based on duration only and irrespective of audio level.

MODES
1 Sync attacks
2 Sync mid times
3 Sync end times

PARAMETER (Mode 1)
(FOCUS): a factor which shortens the window size used for the search. 
  Range: 1 (max. window size, min. focus)  32 (min. window size, max. focus). Values 1, 2, 4, 8, 16 or 32 only.

OPTION (Mode 1)
 Peak Power: Find peak power segment before locating its maximum sample. Default (unchecked): find maximum sample only.

[177]  MixTimewarp
MIXTIMEWARP (CDP: submix timewarp 1-8) 

MixTimewarp sorts or alters the start times of sounds in a mixfile, according to the chosen mode. In Modes 2-8, START LINE and END LINE optionally limit the lines of the (original) mixfile affected. 

Mode 1 puts the sounds into start-time order: tidies the file but doesn't affect the mix. Modes 2 and 3 reverse the start times so that the timegaps between the sounds are also reversed; in Mode 3 the order of files is also reversed. Mode 4 applies a fixed timegap to all sounds (or within range), based on the start times of sounds 1 and 2. Mode 5 similarly imposes a fixed gap but applies this to the first-named sound, i.e. it echoes the sound at this time-interval. Mode 6 randomizes the start times using a SCATTER value between 0 and 1. Mode 7 reduces the timegaps between sounds by GAP seconds, while Mode 8 increases them. 

MODES
1 Sort the mixfile sounds into time order (by start-time)
2 Reverse timing pattern (e.g. rit. becomes accel.)
3 Reverse timing pattern & order of filenames
4 Freeze timegaps: apply the first time gap (between sounds) to all sounds (or all within range)
5 Freeze timegaps and names: apply the first timegap and soundname to all sounds (or all within range)
6 Randomize (scatter) entry times. 
7 Shrink timegaps ("shuffle up" entry times): start times after the first item are reduced by GAP seconds.
8 Increase timegaps: start times after the first item are increased by GAP seconds.

PARAMETERS
SCATTER (Mode 6): the degree of randomzation (Range 0-1) of start times
GAP (Modes 7, 8): the time subtracted from (Mode 7) or added to (Mode 8) all timegaps between the sounds' start times.
(START LINE) / (END LINE) (Modes 2-8): Optionally specify a range of lines in the mixfile that are processed.

NOTES
The function offers a number of ways of manipulating the start times of sounds in a mixfile. To stagger attack onsets you might make a mix, copy the cell to another row and re-edit that by applying some timewarp to the copy (or copies), then mix the different mixes.
Further modes of submix timewarp (9-16) are in a separate Soundshaper process called MixTimegaps.


[1771] MixTimegaps
MIXTIMEGAPS (CDP: submix timewarp 9-16) 

MixTimegaps alters the start times or the timegaps between sounds in a mixfile, according to the chosen mode. In all Modes, START LINE and END LINE optionally limit the lines of the (original) mixfile affected. The "fixed gap" description of Modes 1-4 describes the GAP parameter rather than its use in the Mode.

MODES
1 Fixed Gap 1: create same gap between sounds (GAP seconds)
2 Fixed Gap 2: Increase successive timegaps - startgap + GAP, +2GAP, + 3GAP etc.
3 Fixed Gap 3: Increase successive timegaps - startgap x GAP, x 2GAP, x 3GAP etc. 
4 Fixed Gap 4: Increase successive timegaps - startgap x GAP, startgap x GAP x GAP, startgap x GAP x GAP x GAP etc. 
5 Enlarge Gaps 1: Multiply original times by MULTIPLIER (to increase or shrink all gaps)
6 Enlarge Gaps 2: Add MULTIPLIER (N) to successive start times:  +N, +2N, +3N, etc. 
7 Enlarge Gaps 3: Multiply successive start times by MULTIPLIER (N): N, 2N, 3N etc.
8 Enlarge Gaps 4: Multiply successive start times exponentially by MULTIPLIER (N):  N, NxN, NxNxN, etc. Use with care!

PARAMETERS
GAP (Modes 1-4): fixed GAP time (secs.) used to add to or multiply the existing timegaps
MULTIPLIER (Modes 5-8): fixed value used to increase all start times by addition or multiplication.
(START LINE) / (END LINE): Optionally specify a range of lines in the mixfile that are processed.

NOTES
Mode 5 (submix timewarp 13) is a simple way of changing the tempo of events in the mix.
Earlier modes of submix timewarp are in a separate Soundshaper process called MixTimewarp.


[181], [182]  MixCreate, MixEdit 
MIXEDIT and MIXCREATE (CDP: submix mix)

In these Mix Page "modes", the Mix List is visible. For MixEdit, sound(s) are initially selected on the Main Page and listed in the Soundfile List. For MixCreate, no initial sounds are selected and the mix is returned to column 0 of the current patchgrid row. Click Add Soundfile (CTRL+O) to add further sounds to the list, selectable from any folder. Click the sound in the list before editing its parameters. Multi-channel sounds may be included, but are restricted to Chans 1 and 2.

TIME, LEVEL and PAN VALUES
Use the dedicated sliders and edit boxes to set time, level(s) and pan(s). Click Add to List to add the sound and its parameter values to the Mix List. Start times can be in any order.

EDITING MIX LIST
Click the soundfile in the list. If possible, match this with the currently selected item in the Soundfile List. Or send the Mix List item to the Soundfile List by clicking Current Item under "Send to S'file List". Adjust parameter values and click Update Item. For a manual edit, click Manual Edit, re-type as required and click Update Item, then CLOSE (or Esc). 

The same file in the Soundfile List can be added to the Mix List multiple times: adjust the parameter values and click Add to List. 

When finished, click MIX button to run the mix. At this point you can save a mixfile for future editing; for details see the Soundshaper manual.

The amplitude of overlapping soundfiles is summed, so overloaded levels can be a problem. If individual levels are set relative to each other, it is safest to attenuate the output using the Attenuate slider and then follow the mix output with NORMALISE. 

LOADING A MIXFILE
Click Mixfile OPEN to open a pre-saved mixfile to the Mix List: this clears the list, so do this BEFORE adding new sounds to the mixfile. FOLDER selects the current folder for opening and saving mixfiles.

PARAMETERS
MIXFILE: Up to 1000 lines of:
SOUNDFILE  TIME  NO_CHANS LEVEL  PAN  (LEVEL 2)  (PAN2)

SOUNDFILE is either a temp. file selected from your TEMP.OUTFILES folder (e.g. ~A_1) or is another file selected from the same or another folder. (Files selected from another folder should show the full path; if inserted manually into a mix list, ensure the full path is given.)  The same sound can be included more than once.

TIME   start time in seconds. Mix lines need NOT be in time order. Two or more sounds can start at the same time.
	NOTE: Silence at the start of a CDP mix is ignored: splice it on afterwards, if it's needed. See PreSilence.
	(The CDP commandline option -s for a later Start time does not in appear to generate an initial silence.)

NO_CHANS  number of channels (1 or 2). Mono and stereo files may both be included in a mixfile. 

LEVEL  range is 0-1. CDP allows for dB values (e.g. -3dB); on the MIX page these would have to be edited manually into a mix list (and the Mix Parameters panel of faders and edit boxes doesn't support them.)

PAN  range -1 (L) to 0 (C) to +1 (R), as in PAN. Values <-1 or >+1 attenuate the signal to simulate distance.

(LEVEL 2)/ (PAN 2) are for right channel of a stereo pair, where LEVEL/PAN represent the left channel. 

(ATTENUATION): optional attentuation of output mix. Range: 0-1

[184]  MixTest
MixTest (CDP: submix test) No parameters: tests the format of a mixfile

[1841] Multimix
SUMMARY
Multimix (CDP: multimix create) creates a dummy multi-channel mixfile (.mmx) from mono, stereo or multi-channel input files. Modes 4 and 5 assume an 8-channel format (see NOTES below).

MODES
1 Zero starts: all soundfiles start at time 0
2 Successive starts: each file starts where previous one ends
3 Offset starts: each file starts TIMESTEP secs. after previous one starts
4 Stereo to wide-stereo: distribute stereo sound to two stereo pairs, one narrow and one wide, in an 8-chan output frame; monos are doubled to 2 chans
  For each input file: Right channel goes to 1 and 2; Left channel to 8 and 7
5 Stereo to 8-chan: distribute stereo over 8 channels (pair at front format); monos are doubled to 2 chans
  For each input file: Right channel goes to 1,2,3,4; Left channel to 5,6,7,8.
6 N monos to N channels: distribute N mono files to N successive channels.
7 Monos to N channels: as Mode 6 but cycles round channels if too many input files.
(8 NOT YET IMPLEMENTED)


NOTES
8-channel format (pair-at-front):
                        8   1
                      7       2
                      6       3
                        5   4	 

        
/----------------------------------------------------

[185]  FltFixed
FLTFIXED (CDP: filter fixed) 

FltFixed implements the standard filter types: High-Pass (Mode 1), Low-Pass (Mode 2) and Band-Pass (Mode 3), using a single fixed frequency (FREQ, not time-variable) to determine the cutoff point for High/Low pass and the centre frequency of the band in Mode 2. The sharpness of the amplitude roll-off (Q ) is also fixed.

MODES
 1 High pass: Boost or cut below given frequency.
 2 Low pass:  Boost or cut above given frequency.
 3 Bandpass/reject: Boost or cut a band centered on given frequency.

PARAMETERS
BANDWIDTH (Mode 3): Width of filter band centred around FREQ. 
  Range: 1-22050 Hz
BOOST/CUT: amount of amplitude boost or cut 
  Range: -96.0 to 36.0 dB
FREQ: the cut-off (Modes 1/2) or centre frequency (Mode 3) of the filter
  Range: 10-22050 Hz
(TAIL): time to allow delayed signal to decay to zero 
  Range: 0-20 secs
(PRESCALE): Gain applied to the input before filtering. 
  Range: 0.005 to 200.0

NOTES
Provided the fixed filter response ('Q') is acceptable, this is an effective quick filter. The lack of time-variation limits its usefulness, however. See also LOHI, FLTVARI, and spectral FILTER.

[186]  LoHi
LOHI (CDP: filter lohi) 

LoHi is a simple Low/High pass filter which is capable of very tight 'brickwall' filtering. 

The key parameters are STOPBAND and PASSBAND: PASSBAND is the cutoff frequency: the last frequency to be passed by the filter; STOPBAND is the frequency of the roll-off limit -- the first freq. to be fully stopped by the filter. If PASSBAND is lower than STOPBAND, the filter is Low-Pass; if it is higher, the filter is High-Pass. ATTENUATION determines the degree of roll-off between these frequencies.  PASSBAND and STOPBAND can be set as frequencies (Mode 1) or MIDI pitch values (Mode 2), which may be musically more intuitive in many cases.

The key feature of this filter is that having set PASSBAND and STOPBAND, the program works out the necessary order of filtering to achieve this. LoHi is particularly effective when you need to isolate tones in a tone-complex (such as an inharmonic sound) or clean up retuned sounds (see spectral Tune). It is theoretically capable of "brickwall" filtering (stopband=passband), but a useful rule-of-thumb is to allow about a minor-third roll-off and specify 96dB attenuation. 

PARAMETERS
PASSBAND: Last frequency to be passed by the filter.
  Range: 10-1000-14700 Hz.
STOPBAND: First frequency to be stopped by the filter.
  Range: 10-1000-14700 Hz.
If PASSBAND < STOPBAND then filter is Low-Pass; 
if STOPBAND < PASSBAND then filter is High-Pass.
ATTENUATION: Gain reduction of the filter, from PASSBAND to STOPBAND frequencies/pitches.
  Range: <0 to -96 dB -- for total reduction at STOPBAND (or as close as possible), set to -96. 

NOTES
The parameters STOPBAND and PASSBAND can be confusing at first and do not refer to frequency bands. 
A low-pass filter passes the low frequencies (below PASSBAND) and filters the high (above STOPBAND);
a high-pass filter passes the high frequencies (above PASSBAND) and filters the low (below STOPBAND):
  Low pass -- Upper: STOPBAND	 High Pass -- Upper: PASSBAND
              Lower: PASSBAND		      Lower: STOPBAND

Normally there would be at least a small frequency band between STOPBAND and PASSBAND, to allow for amplitude roll-off. Note that ATTENUATION also determines the roll-off: the greater the attenuation, the sharper the filter  but it takes longer to calculate. You might not set this to -96 dB (complete roll-off), in which case the frequencies beyond STOPBAND will not be fully filtered out.

[187]  FltVari
FLTVARI (CDP filter variable)

FltVari offers a time-varying cutoff frequency and response ('Q') - here called ACUITY, which determines the sharpness of the roll-off.
The classic filter types are set by the mode: High-Pass (Mode 1), Low-Pass (Mode 2), Band-Pass (Mode 3) and Band-reject, or 'Notch' (Mode 4). In addition, you can set the overall output GAIN, particularly to boost the bandpassed signal if ACUITY is high (narrow band).

MODES
1 High Pass (runs CDP Mode 4): Filter below given frequency
2 Low Pass  (runs CDP Mode 3): Filter above given frequency
3 Band Pass (runs CDP Mode 2): Filter above and below this central frequency
4 Notch     (runs CDP Mode 1): filter within the band

PARAMETERS
ACUITY ('Q'): Sharpness of filter response - defines the passband (or band reject in 'Notch' mode). 
  Range: 0.0001 to 1; T-V. (Smaller is tighter.)
GAIN: Overall gain on output 
  Range: 0.001 - 1 - 10000; use >1 for narrow band to boost remaining signal.
FREQ: Filter frequency -- cutoff (Modes 1/2) or central (Modes 3/4) 
  Range: 10-14700 Hz; T-V
(TAIL): Time to allow delayed signal to decay to zero 
  Range: 0-20 secs

NOTES
The mode numbers differ from CDP's numbering (especially since discovering that the latter were incorrectly assigned).

ACUITY controls the rate at which the amplitude decreases as the frequency diverges from the cutoff/central FREQ value. The faster the rate (the steeper the roll-off slope), the more the resulting sound is focused on FREQ (Band-pass), or the area above (High-pass) or below it (Low-pass); or omits the area around FREQ (Notch). It is best not to make the ACUITY too tight as the resonance produced may become unpredictable. 

Because a filter creates resonance (boosts the amplitude of frequencies in a certain frequency area), especially with a broader roll-off, overload can easily occur. If overflow is reported, run the function again with GAIN reduced.

[188]  Bank
BANK (CDP: filter bank) 

BANK implements a filter bank (i.e. bank of band-pass filters, or Graphic EQ), one of four such functions. The central frequencies of the bands are determined by various musical factors such as the Harmonic Series or intervals (see MODES). Q sets the passband: the narrowness of the bands, which is time-variable. There is also an overall filter range set by LOFREQ and HIFREQ. Having set up the filter frequencies, they can optionally be scattered randomly to a degree set by SCATTER.

MODES
 1 Harmonics: Centre frequencies are a Harmonic Series over LOW FREQ.
 2 Alternate harmonics: Centre frequencies are odd-numbered harmonics over LOW FREQ.
 3 Subharmonics: Centre frequeencies form a sub-harmonic series below HIGH FREQ.
 4 Harmonics+offset: Centre frequeencies Harmonic Series over LOW FREQ, with an added OFFSET.
 5 Equal intervals 1: equal intervals between LOW FREQ and HIGH FREQ; bands defined by number of filters.
 6 Equal intervals 2: equal intervals between LOW FREQ and HIGH FREQ; bands defined by interval size. 

PARAMETERS
Q: Sharpness of filter response; higher value is tighter/narrower 
  Range: 0.001-10000; T-V
GAIN: Overall gain on output;  use higher values only with high Q 
  Range 0.001 to 10000
LOW FREQ: Lower frequency limit of filters  - defines bank freqs in Modes 1,2,4
  Range: 10 to 14700 Hz
HIGH FREQ: Upper frequency limit of filters - defines bank freqs in Mode 3 
  Range: >LOW FREQ to 14700 Hz
OFFSET (Mode 4): Frequency added to/subtracted from harmonic series; harmonics are shifted by this amount, giving inharmonic intervals. 
  Range +/-22050 Hz
FILTERS (MOde 5): Fixed number of filters - divides frequency range into equal intervals
  Range: 1-2000
INTERVAL: Fixed interval size between filters - determines number of bands
  Range: 0.25 (25 cents) to 96 semitones
(TAIL): Time to allow delayed signal to decay to zero (0-20 secs)
(SCATTER): Amount of random scatter of filter frequencies 
  Range 0 to 1; default 0

OPTION: 
 Double filtering

NOTES
Filter banks allow you to 'tune' the sound by focusing on the centre frequencies, if sufficiently high 'Q' and GAIN are employed (but not so high as to give overload). The success of tuning depends partly on what frequencies are already present in the sound. If "homing in" on this effect by tightening 'Q' over time, you would also need to boost the GAIN over time, which is not possible within this function, but can be done separately as the next process.

See also USERBANK, VARIBANK and VARIBANK-HMCS 

[189]  Bankfreqs
BANKFREQS (CDP: filter bankfrqs)

Bankfreqs generates a frequency file for use with filter bank processes: BANK, USERBANK (add amplitudes). The output is a text file: Soundshaper requires you to name this and supplies the name bankfreqs.txt, which you can edit.

MODES
1 Harmonics: harmonic series over LOFREQ
2 Alternate harmonics: odd-numbered harmonics over LOFREQ
3 Subharmonics: subharmonics of HIFREQ
4 Harmonics + Offset: harmonic series over LOFREQ plus linear offset (add or subtract OFFSET from harmonic)
5 Equal intervals 1: equal intervals (LOFREQ-HIFREQ), where the frequency bands are determined by the number of filters (FILTERS)
6 Equal intervals 2: equal intervals (LOFREQ-HIFREQ), where the frequency bands are determined by interal size (INTERVAL)

PARAMETERS
LOFREQ: Lower frequency limit of filters
  Range: 10-10000 Hz Full range: 10-11025 Hz
HIFREQ: Upper frequency limit of filters
  Range: 10-10000 Hz Full range: 10-11025 Must be > LOFREQ
OFFSET (Mode 4): frquency added to / subtracted from harmonic series on LOFREQ
  Range: -5000 to +5000 Full range: -22050 to +22050
FILTERS (Mode 5): number of filters with which to divide full bandwidth (LOFREQ-HIFREQ) into equal intervals
  Range: 1-500  Full range: 1-2000
INTERVAL (Mode 6): fixed interval size between filters, in semitones
  Range: 0.25 to 96.0 semitones
(SCATTER): randomly adjust (scatter) the filter frequencies to a degree
  Range: 0-1


[1891] VFilters
VFILTERS (CDP equivalent: vfilters)

VFilters generates a frequency file for use with VARIBANK (q.v.). Soundshaper supplies its own procedure for this operation, which is roughly the same as the CDP function.

1. Enter some marker times (minimum 2): these will be the times used in the frequency file
   Example: 0 1 2 3 (secs)
2. Select Data | Varibank data file
3. In the text window provided, enter frequencies of MIDI pitch values (possibly fractional) for each line. Enter the same number on each line. The number of lines should match the number of markers.
  Example: 
	12 24 36 48 60 72 84 96 108
	11 25 37 47 61 74 86 94 106
        10 26 38 46 62 75 88 92 104
         9 27 39 45 63 76 89 91 102
4 Re-select  Data | Varibank data file
5 Enter an amplitude value to be applies to all frequencies, e.g. 0.7. Click OK.
6 The text result is displayed and you are invited to save this to a file:

Example:
0  12 0.7 24 0.7 36 0.7 48 0.7 60 0.7 72 0.7 84 0.7 96 0.7 108 0.7
1  11 0.7 25 0.7 37 0.7 47 0.7 61 0.7 74 0.7 86 0.7 94 0.7 106 0.7
2  10 0.7 26 0.7 38 0.7 46 0.7 62 0.7 75 0.7 88 0.7 92 0.7 104 0.7
3   9 0.7 27 0.7 39 0.7 45 0.7 63 0.7 76 0.7 89 0.7 91 0.7 102 0.7


[1892]	FILTRAGE 
FILTRAGE (CDP: filtrage): generate random-freq filterbank data

FILTRAGE generates filterbank data files for VARIBANK,  with random frequencies.  Mode 1 produces fixed filter data (doesn't change over the time-span), while Mode 2 produces time-varying data. Soundshaper's output file has the fixed name "filtrand.txt" - for now (placed in <User-Folder>). (Subsequent runs will overwrite this file unless its name is changed.)

DURATION sets the overall timespan covered by the file and FILTERS the number of filters required. The overall pitch range is set by PITCH MIN and PITCH MAX. Pitches are chosen randomly between these limites; PCH RAND sets the degree of randomization; there is also an optional bias towards high or low pitch set by DISTRIB. Similarly, amplitude values are chosen between AMP MIN and the maximum level 1; the degree of randomization is set by AMP RAND and the bias, if any, by AMP DISTRIB. 

Mode 2 requires times to precede each set of filterbank data (c.f. VARIBANK). The first time is 0.0 secs and TIMESTEP sets a regular time to advance to the next set; to randomize this set TIMERAND >0. (You can of course edit the times in the output data file.)  Finally, SEED sets a number which will reproduce the same results on a re-run. 

MODES
1 Fixed filter: generate a fixed filter data file (in VARIBANK format)
2 Vari filter: generate a time-varying filter data file (in VARIBANK format)

PARAMETERS
DURATION spanned by output filter file 
  Range: 0-32767 secs (Soundshaper's range may be exceeded.)
FILTERS: number of parallel filters in the filterbank
  Range: 2-400
PITCH MIN: Minimum pitch in range 
  Range: 0-127 (MIDI pitch)
PITCH MAX: Maximum pitch in range
  Range: Range: 0-127 (MIDI pitch)
DISTRIB: Distribution of pitch values
  Range: 1=linear; <1 / >1: squeezed towards high / low pitches
PCH RAND: Degree of randomisation of filter pitches
  Range: 0-1
AMP MIN: Minimum filter amplitude 
  Range: 0-1
AMP RAND: Degree of randomisation of filter amplitudes
  Range: 0-1
AMP DISTRIB: Amplitude distribution 
  Range: -1/+1: Decreasing/increasing with pitch; 0: Random; other vals: decreasing randomization.
TIMESTEP (Mode 2): Timestep between each specified set of filter-pitches 
  Range: >0 secs; 1st time is 0.0.
TIMERAND (Mode 2): Randomisation of timestep 
  Range: 0-1
(SEED): Same seed-number produces identical randomization on rerun.
  Range: 0-32767; default 0: random sequence

NOTES
4 filters spread over MIDI 36-72 and a set of values every 2" produced the file:

0.000000  36.652402  0.962668  48.366554  0.835011  54.429201  0.673751  60.270501  0.514595
2.000000  37.025983  0.993088  46.420885  0.844629  54.091361  0.700716  62.949427  0.506138
4.000000  37.794362  0.842264  48.314848  0.675147  54.824309  0.972373  61.072253  0.506926
6.000000  37.754604  0.961428  46.912400  0.697998  56.042592  0.852223  61.980918  0.539829
8.000000  38.631340  0.983648  47.445116  0.874975  55.960192  0.708066  60.152669  0.525479
10.000000  38.285569  0.868233  45.837905  0.707601  56.749790  0.988629  62.810274  0.511495

Note that the randomisation is not as great as you might imagine, but permits a controllable degree of variation of amplitude, frequency and output times, which can be further adjusted manually as required.

[190]  Userbank
USERBANK (CDP: filter userbank) 

USERBANK is a user-defined filter bank. The filter bands are defined by pairs of frequency and amplitude (MOde 1), or by MIDI-pitch and amplitude (Mode 2). Neither freq/pitch or amp are time-varying. The width of each band (the passband, or 'Q'), is as in BANK and is time-variable. Overall GAIN and TAIL are also as in BANK.

MODES
 1 Filter bands given as frequencies: bands are centred on user-defined frequencies.
 2 Filter bands given as MIDI pitches: bands are centred on user-defined pitches.

PARAMETERS
FILTBANKF (Mode 1) text data file; any number of lines, each of freq and amplitude (one pair per filter)
  Ranges -  Freq: 10-14700 Hz; Amp: 0.001 to 10000  (May be edited in GraphEdit.) 
FILTBANKM (Mode 2) text data file; any number of lines, each of MIDI pitch and amplitude (one pair per filter) 
  Ranges - MIDI: 3.5-127; Amp: 0.001 to 10000 (MIDI may have fractional values) 
	(May be edited in GraphEdit.) 
Q: Sharpness of filter response; higher value is tighter/narrower 
  Range 0.001 to 10000
GAIN: Overall gain on output.
  Range: 0.001  to 10000.0
(TAIL): time to allow delayed signal to decay to zero
  Range: 0-20 secs

OPTION: 
 Double filtering

NOTES
FILTBANKF and FILTBANKM are not time-variable -- for this see VARIBANK. They are, however, shared with FLTITERATE - filtered repetitions.

[191]  Varibank
VARIBANK (CDP: filter varibank) 

VARIBANK is a powerful time-variable filter bank, with particular relevance to 'tuning' a sound. Like USERBANK, the filter bands are defined by pairs of freq/amp or MIDI-pitch/amp, but here they are set out in one line, preceded by a time. The data file consists of any number of these time-sliced filter definitions. HARMONICS sets a number of harmonics of the central frequency that you may wish to include as extra filters.  The width of each band (the passband, or 'Q'), is as in BANK and is time-variable. Overall GAIN and TAIL are also as in BANK. 

MODES
 1 Filter bands given as frequencies: bands are centred on user-defined frequencies.
 2 Filter bands given as MIDI pitches: bands are centred on user-defined pitches.

PARAMETERS
VARIBANKF (Mode 1): Text datafile of any no. of lines, each of:
	TIME	FREQ 1	AMP 1, FREQ 2  AMP 2, etc. 
e.g.:   0.00	110     0.7    220     0.7
  Ranges -- Freq: 10-14700 Hz; Amp: 0.001 to 10000, or may be given in dB, e.g. "-3dB" instead of "0.7"
VARIBANKM (Mode 2): Text datafile of any no. of lines, each of:
	TIME	MIDI 1	AMP 1, MIDI 2  AMP 2, etc. 
e.g.:   0.00	45      0.7    57      0.7
  Ranges -- MIDI: 3.5-127 (may be fractional); Amp as for VARIBANKF

For both VARIBANKF and VARIBANKM:
 Times must increase, even if by a minute amount.
 There must be the same number of Freq/Amp pairs on each line (but a component can have Amp = 0).
 Changing values for each component change over the period one time to the next; e.g. FREQ1 might glissando in frequency and AMP 1 might get louder or softer. 
To hold a setting for a while and then change immediately, first duplicate the set of Freq/Amp or MIDI/Amp values on the next line / time; then have different values on the following line, with a  minutely later time.  (For further details, see CDP docs: filestxt.htm.)

Soundshaper can generate a basic Varibank data file: see Data menu.

Q: Sharpness of filter response; higher value is tighter/narrower 
  Range 0.001 to 10000
GAIN: Overall gain on output.
  Range: 0.001  to 10000.0
(TAIL): time to allow delayed signal to decay to zero
  Range: 0-20 secs
(HARMONICS): Number of harmonics of each pitch to use 
  Range: 1-200; default: 1. 4 or 5 are a typical number if the specified pitches are quite high.
  N.B. The process will not run if the harmonics would specify a frequency beyond 22050Hz.
(ROLLOFF): Amplitude decrease (in dB) from one harmonic to the next 
  Range: 0 to -96 dB; typical value might be 2 or 3, i.e. each harmonic is 3dB less than the previous one.

OPTION 
 Double filtering

NOTES
VARIBANK is an effective way of 'tuning' many sounds to a template set of pitches/amps, which may be time-varying. It has its own characteristic output sound, but the file format is also used in other CDP programs, e.g. for the time-variable TUNE, giving possibilities of mixing/ panning / or sequential processing with these variants.

Note the trade-off between amp and GAIN: a tytpical GAIN value is 20, but if amps and Q are high, or the input level is high, GAIN might have to be around 10.  
Also note the limits of HARMONICS: if the source has high-frequency content, then including too many high harmonics may take it beyond 22050 Hz, so the process will be rejected.

Finally, note that filtering REMOVES content: you cannot focus in on what is not already there, but you could precede the process by TRANSPOSE and MIX2 to increase the frequency range fed into VARIBANK.


[1911] Varibank2
VARIBANK2 (CDP: filter varibank2)

Varibank2 is a variant of VARIBANK (q.v.). Instead of the HARMONICS parameter specifying a fixed number of harmonics for each pitch/frequency, the VARIBANKF and VARIBANKM text datafiles are extended by timed lines of partials and amps.  

VARIBANKF and VARIBANKM extensions:
 one line of the hash character (#) to indicate that extra information will follow. 
 any number of lines of: 
  time; pairs of   harmonic number (partial)  amplitude weight, e.g.:

;TIME HMC AMP  HMC   AMP  HMC   AMP   {etc.}
 0.00 1   0.3  2.237 0.4  7.615 0.8

Note that: 
 Each partial-data line must have the same number of entries, but a partial or amp may = 0.
 Partials need not be whole numbers (i.e. true harmonics), but may be inharmonic partials, as above (e.g. 7.615).  
 Amps have values from 0 to 1 (or possibly in dB, e.g. -3dB  ? - not yet tested).
 Partials and amps can change value from one line to the next.
 Times need not match those in the main pitch / amp list (? - not yet tested).

NOTES
Compare these two:
 VARIBANK, with a low HARMONICS value, and a highly detailed list of pitches/frequencies and amps, (extending to high frequencies); 
 VARIBANK 2, with a short list of  pitches/frequencies and amps (keeping quite low in pitch), followed by lengthy list of partials and amps.

The difference is largely a question of control: VARIBANK 2 allows you to control the changing content via ratios of partials, rather than having to work out what values these would have as pitch/frequency. It may be particularly suited to inharmonic partials, therefore.
  

[192]  Sweep
SWEEP (CDP: filter sweep) 

SWEEP emulates the classic filter sweep effect found on analogue synths, in which the filter is 'opened up' by its cutoff frequency moving progressively higher then lower again. The tightness of the filter band is set by ACUITY (= 'Q'). The range of the sweep is between LOW-FREQ and HIGH FREQ. The sweep frequency (SWEEP) is normally a low-frequency oscillator, though you can drive this one up to 200 Hz.

MODES
 1 High Pass: Filter out frequencies below the cutoff
 2 Low Pass:  Filter out frequencies above the cutoff
 3 Band Pass: Filter out frequencies outside the band
 4 Notch:     Filter out frequencies within the band.
  
PARAMETERS
ACUITY: Sharpness of filter response; smaller is tighter 
  Range: 0.0001 to 1
GAIN: Overall gain on output; attenuate as needed to avoid overload 
  Range: 0.001 - 1 - 10000
LOW FREQ: Lowest frequency to sweep to 
  Range: 10-22050 Hz
HIGH FREQ: Highest frequency to sweep to 
  Range: 10-22050 Hz
SWEEP: Frequency of sweep 
  Range: 0-200 Hz
(TAIL): time to allow delayed signal to decay to zero
  Range: 0-20 secs
(PHASE): Start position of sweep, eg 0.25 is midway along rising curve, 0.5 is at top 
  Range: 0 to 1.

NOTES
The effect works equally well with Low-Pass/High-pass and narrow Band-pass settings; perhaps less well with Notch which is removing the band.  For some sounds, it may be necessary to attenuate the input to avoid overload.
 
[193] FltIterate
FLTITERATE (CDP: filter iterated) 

FltIterate is a mixture of USERBANK and ITERATE. The filter bands are set, as in USERBANK, by frequency (FILTBANKF) or by MIDI pitch (FILTBANKM). To obtain a highly tuned effect, set Q high (250 or more) and GAIN >1 (e.g. 10). The iterations are set by DELAY time, which can be within the range of "now" (<40 ms) or separate echoes. As with ITERATE, there is optional randomization of delay (RAND), pitch (PITCH SHIFT) and amplitude (AMP CUT).

MODES
 1 Filter bands given as frequencies: bands are centred on user-defined frequencies.
 2 Filter bands given as MIDI pitches: bands are centred on user-defined pitches.

PARAMETERS
FILTBANKF (Mode 1) text data file; any number of lines, each of freq and amplitude (one pair per filter)
  Ranges -  Freq: 10-14700 Hz; Amp: 0.001 to 10000  (May be edited in GraphEdit.) 
FILTBANKM (Mode 2) text data file; any number of lines, each of MIDI pitch and amplitude (one pair per filter) 
  Ranges - MIDI: 3.5-127; Amp: 0.001 to 10000 (MIDI may have fractional values) 
	(May be edited in GraphEdit.) 
Q: Sharpness of filter response; higher value is tighter/narrower 
  Range 0.001 - 10000
GAIN: Overall gain on output.
  Range: 0.001  to 10000.0
DELAY: Average delay between iterations
  Range: 0.000002 to 32767.0 secs (Soundshaper: 0.001 to 100; may be exceeded.)
DURATION: Minimum length of the output file
  Range: >Infile-length to 32767 secs (Soundshaper's limit of 300 secs+Infile may be exceeded.)
(PRESCALE): Gain on Input; if 0, the input level is automatically divided by the maximum number of overlays
  Range: 0-1 (default 1)
(RAND): Randomise delay times 
  Range 0 - 1; default 0
(PITCH SHIFT): Maximum random pitch shift up or down on each iteration 
  Range 0 - 48 semitones
(AMP CUT): Maximum random gain reduction on each iteration
  Range 0 - 1; default 0

OPTIONS 
 Double filtering
 No interpolation: turn off interpolation during filtering (quick but dirty).
 Add exponential decay: each segment gets quieter before next enters
 No normalization - segments grow or fall in level quickly, but overload may occur.

[194]  Phasing
PHASING (CDP: filter phasing) 

PHASING is an all-pass filter with time-variable delay time, which is used to creates the delay-line's classic "phasing" effect. An all-pass filter lets all sounds past, but phase-shifts the sound (Mode 1). The phase-sweep effect (Mode 2) relies on mixing the source with a varying delay, phase-shifted, so that it is progressively subtracting different frequencies from the output. There is no sweep parameter here, but the delay time can be time-varying.

MODES
 1 Phase-shift (Allpass): Pass all frequencies while changing their phase relationships.
 2 Phasing effect: produce a "phasing" (sweeping band) effect.

PARAMETERS
GAIN: Amplitude
  Range: -1 to 1; MODE 2: a gain of 1.0 produces total phase cancellation (output zero). 
DELAY: Time in between return of delayed material 
  Range: 0.022676 to 1548.480726 ms; T-V.
(TAIL): time to allow delayed signal to decay to zero
  Range: 0-20 secs
(PRESCALE): Gain applied to the input before filtering
  Range: 0-1 (though negative nos. also accepted: Range -1 to +1)

OPTION 
 Use linear instead of logarithmic interpolation of changing delay values

NOTES
It seems very hard to get a convincing phasing effect from this process. Other functions do it better: see DELAY (Modes 3/4) and SWEEPING.

[1942] Phasor
PHASOR - CDP Release 8 - PROVISIONAL
 
PHASOR produces a convincing phasing effect, with mono, stereo or multi-channel output. 
The input is natively MONO, but Soundshaper can handle stereo or muoti-channel input.

The signal is divided into a number of output streams (STREAMS parameter) that phase-interact. The key paramaters are phase frequency (PHASEFREQ) and pitch shift, which actually drives the phasing process (value of 0 has no phasing effect). There is also an optional OFFSET parameter which time-offsets the streams: even without pitch shifting, this is an effective way of creating a pseudo-stereo effect out of a mono signal, since it is phase and timing differences that create the stereo illusion.

The program can produce a chorus effect, too, by setting PHASEFREQ fairly low (e.g. 0.5), plus some pitch SHIFT (e.g. 2) and OFFSET (>40mS).

PARAMETERS
STREAMS: The number of output streams that phase interact
  Range: 2 to 8
PHASEFREQ: The speed of the phasing cycle. More than about 25Hz should produce a note.
  CDP: "Frequency of packets: phase shifts forward then back in a single packet. Extreme PHASEFREQ changes or reversals will produce anomalous output."
  Range: 0.01Hz to 100Hz (T-V)
SHIFT: Pitch shift of packet 
  Range: 0-12 semitones (poss. fractional)
OUTCHANS: Number of output channels
  Range: 1 to 8 (<= STREAMS)
(OFFSET): maximum time-offset of streams: the time-offset of the most-offset stream; the others are offset by intermediate amounts) 
  Range: 0-500 mS

OPTION
Surround sound:  loudspeakers encircle audience  (only with >2 OUTCHANS)

NOTES
Apart from the obvious phasing effect, which is perhaps now something of an '80s clich, the ability to shift phase subtly can produce a convincing stereo effect and change the perceived spatial position of frequency components in the sound. In this context, the time-varying capacity of both PHASEFREQ and SHIFT could be a distinct advantage.

A further option, that prints warnings about rounding-errors in calculating time-shifted streams, is not supported.

As a phasing effect, PHASOR surpasses the earlier FILTER PHASING 2, although the latter has some value for chorusing. 

[195] Level
LEVEL (CDP: modify loudness 1-4) 

LEVEL sets or alters the level in a soundfile. Gain (Mode 1 / 2) multiplies the signal to raise or lower the level. Normalise (Mode 3) raises or lowers the maximum level to the given level given. Force Level (Mode 4) is the same as Mode 3 (?) 

Various pre-set levels gains and normalising levels are also offered within Soundshaper's LEVEL button/menu.

MODES
 1 Gain
 2 Gain in dB
 3 Normalise
 4 Force Level 

PARAMETERS
GAIN: multiply signal level:< 1.0 reduces level; > 1 increases 
 Range: 0.000031 to 32767; *100 = +40dB T-V
GAINdB (Mode 2): as Gain but expressed in dB
 Range: -96 to 0 to +96 dB
(LEVEL) (Modes 3&4): Amplitude level - if not set, then raise to max. possible
  Range: 0.0001 to 1 (full range: 0.000031 to 1; 1 is full gain)

[1951] Loudest
LOUDEST (CDP: modify loudness 7) 

Loudest finds the loudest of two soundfiles. 

[1953] Normalise
NORMALISE (CDP: modify loudness 3) 

Normalise is Mode 3 of LEVEL. Normalise raises or lowers the maximum level to the given level given. 

[1954] ForceLevel
FORCE LEVEL (CDP: modify loudness 4) 

ForceLevel is Mode 4 of LEVEL. Forces level to the maximum possible, or to the level given (same as NORMALISE ?)

[1955] Balance
BALANCE (CDP: modify loudness 5) 

BALANCE forces the maxmimum level of Infile 1 to the maximum level of Infile2.

PARAMETERS: none

[1956] PhaseInvert
PHASE INVERT (CDP: modify loudness 6) 

PhaseInvert inverts the phase of the sound (positive values become negative and vice-versa). 

PARAMETERS: none

[1957] PhaseShift
PHASESHIFT (CDP: phase phase 2) 

PhaseShift attempts to enhance stereo separation (requires a STEREO Infile) by shifting the phase of the signal. The process uses a fairly well-known technique in which some of the Left signal is subtracted from the Right channel (by adding part of the phase-inverted Left signal) and vice versa. This assumes (as is normal) that the channels have some of each other's signal.

The key (and only) parameter is the amount of negative signal added. If you add too much, you'll simply replace what was there (from the opposite channel )with a phase-inverted version. (It's a pity TRANSFER is not T-V; then you could note the level that had the maximum effect.)

PARAMETER
(TRANSFER): Amount of signal to be used in phase-cancellation
  Range: 0-1:  default 1 = all)

[1958] Equalise
EQUALISE (CDP: modify loudness 8) 

Equalise forces all of 2 or more files to the level of the loudest file. The input files are rescaled in input order, with output names as outfile, outfile1, outfile2, outfile3 etc. Soundshaper's implementation currently outputs only one file to the patchgrid, but the others are generated nonetheless (e.g. it generates ~A_1, ~A_11, ~A_12 etc., assuming these filesnames are available).


[1959] MchGain
MCHGAIN (CDP: frame shift 7) 

MchGain applies gain reduction to a multi-channel file. CHAN specifies the channel or group of channels to which to apply the gain; GAIN sets the gain level of gain reduction.  

PARAMETERS
CHAN: either a single value or a list of channel numbers in a textfile
  Range: 1 to number of channels
GAIN: Amplitude level
  Range: 0-1

NOTES
If the Multi-params checkbox is checked on the parameter page, different levels may be applied to each channel (save each parameter set in a different snapshot: 1 to number of chans).

[196]  Pan
PAN (CDP: modify space 1) 

Pan places a MONO sound in stereo space, outputting a stereo soundfile. Soundshaper can also process a stereo input, with the possibility of different parameter settings for each channel. 

The key parameter is PAN, which can be time-varying. Pan position normally ranges from -1 (full left) to +1 (full right). However, higher or lower values are accepted, which are attenuated in level to simulate further distance from the listener.

Mode 2 - Scaled Pan - scales any time-varying times; however, Soundshaper's new auto-scale feature does this automatically, so this option may be redundant. 

MODES
 1 Pan: Position MONO sound in stereo space, with single value or time-varying.
 2 Scaled pan: Time-varying pan (only) with automatic scaling of times in file. (MONO in; STEREO out)

PARAMETERS
PAN: Specify stereo position 
  Range: +/- 256: -1 left, 0 centre, 1 right; >1 or <-1 signal has lower level T-V
(PRESCALE): Gain factor adjusting input level 
  Range: 0.000031 to 2.0; default: 0.7, approx -3dB

[1961] MirrorPan
MirrorPan (CDP: modify space 3) 

MirrorPan inverts the stereo image in a pan breakpoint file. MirrorPan turns positive pan values into negative ones and vice-versa; that's all.

PARAMETERS: none

NOTES
This function is processed from the SPARE FILE slot, as datafiles do not normally appear on the patchgrid, unless they are pitch or envelope breakpoint files.

[1962] Sinedata
SINEDATA (CDP: modify spaceform) 

SINEDATA creates a sinusoidal breakpoint data file. Though intended for use with PAN, it can in fact be used as a controlling LFO for many applications (like transposition, tremolo etc.)  Set the DURATION parameter first of all, if possible. Name an outfile on the parameter page (defaults to sinedata.brk)

PARAMETERS
DURATION (set this first!): length of outrfile required 
  Range: 0-300 secs (can be exceeded)
CYCLELEN: duration of one wave cycle (T-V over duration)
  Range: 0.001 - 100 secs.
LEVEL (CDP width): amplitude of sine wave (T-V over duration)
  Range: 0-1  For PAN, 1 = full width
TIMESTEP: quantization density -- time between successive values (e.g. 0.001); smaller is more dense
  Range: 0.005 to 1 (secs)
PHASE: angular position at which first cycle starts 
  Range: 0-360 (degrees); for PAN, 0/360=Right, 180=Left.


[1963] Narrow

NARRROW (CDP: modify space 4)

Narrow narrows or inverts the stereo image of a stereo sound (Infile must be STEREO). The range of the NARROW parameter is 0-1 where 0 is mono (totally narrowed) and 1 is no change. 

Negative values invert the stereo image (0 to -1, where -1 would be no change but inverted).

PARAMETERS
NARROW: Narrow the stereo field of a sound (needs STEREO Infile).
  Range: -1 to 0 to +1; 1 no change; 0 mono; <0 inverts stereo

NOTES
c.f. PHASESHIFT which changes phase relationships to widen the stereo image, and MIRRORPAN, which inverts the stereo image in a pan data file.

[1964] MchPan
MCHPAN (CDP: mchanpan 1/9) 

MchPan pans sound in multi-channel space. The choice of Modes is between Pan or Rotate (see Notes on Modes).  Output is to the specified number of channels: OUTCHANS. The input is natively MONO, but Soundshaper can handle stereo or multichannel, the outputs being mixed afterwards.

The key datafile is also called MCHPAN (CDP: Panfile). This has three values: TIME, (Channel)POSITION, and TYPE: either direct pan (pan directly to a channel position) or rotate - clockwise or anticlockwise. MchPan envisages ring numbering of channels: i.e. channels are arranged in a ring with numbers ascending in a clockwise direction. You can configure channels how you like, but you are advised to think this way to understand the process.

Being time-varying, the movement is continuous between time-values, e.g. (4-chans):
;time   position   type (direct)
 0      1          0
 3      4          0
 4      2          0
 5      3          0
Here, our sound pans between chans 1 and 4 over 3 seconds; then moves to channel 2 over 1 second; finally to channel 3 over 1 second. Notice we are passing one sound around space. If we were dealing with four distinct strands (e.g. outputs of SLICE), we could run the process four times and mix the results using MIXMANY. If the type is rotation (1 or 2), the sound passes through the channel numbers, e.g. 1-->2-->3-->4 between 0 and 3 secs above, or 1-->4, if anti-clockwise.

Mode 2's rotation is a spin, governed by STARTCHAN and REVS (revolutions per second). An Option checkbox selects anti-clockwise.

PARAMETERS
OUTCHANS: Number of output channels
  Range: 2-16
MCHPAN: datafile of time - channel position (1-OUTCHANS) - type (0=Direct /1=Rotate clockwise/2=rotate anti-clockwise)   Direct pans: position values must be non-zero integers. Rotations can start/stop anywhere, so position values can be fractional. Values between 0 & 1 are positions between highest channel (e.g. 8) and channel 1.
FOCUS (Mode 2)/(FOCUS) (Mode1): Degree of bleeding into adjacent channels
  Range: 0-1 where 1 is 100% channel-focussed, 0.9 to channel N bleeds 10% to chan. N-1 and N+1.
STARTCHAN (Mode 2): Initial channel for rotation
  Range: 1-OUTCHANS
REVS: Speed of spin in revolutions per second.
  Range: 0-64 (revs per sec) T-V 

NOTES
MchPan is part of a single CDP function MCHANPAN which has 10 modes. MchPan covers CDP Modes 1 and 9 respectively.

[1965] MchSpread
MCHSPREAD (CDP: mchanpan 4) 

MchSpread spreads a MONO sound across multi-channel space, spreading the source gradually from a central channel (CENTRE CHAN) across several channels. MchSpread envisages ring numbering of channels: i.e. channels are arranged in a ring with numbers ascending in a clockwise direction. 

One channel is chosen as the 'central' one and the spread is outwards from there: e.g. if no. 6 out of 8 channels is the central one (as approximated in the sequence 34567812), and SPREAD is 3, then the spreading would be from chans 3 to 1: 3 to the left and 3 to the right of 6 in the sequence. 

The parameter SPREAD defines the range of the spread: the signal always reaches the maximum spread, while DEPTH defines how many channels of the spread are used - not outwards from the centre (as you might assume), but from the outside in. For example with 8 channels and 1 as the central channel, spread = 7 and depth >=3.5 uses channels 6 7 8 1 2 3 4, but depth = 2 uses only 6 7 - - - 3 4 (leaving a hole in the middle), and depth =1 leaves only the outer channels: 6 - - - - - - 4. 

PARAMETERS
OUTCHANS: Number of output channels
  Range: 2-16
CENTRE_CHAN: Central channel number of spreading. 
  Range: 1 to OUTCHANS  (Meant to be T-V, but probably NOT: .brks give CDP Error.)
SPREAD: Channel spread of output: from far left to far right of centre
  Range: 0 to OUTCHANS.  T-V
DEPTH:  maximum no. of channels (to left, and to right) utilised, behind leading edges.
The signal always reaches the maximum spread, but may have a hole in the middle.
  Range: 0-OUTCHANS/2. T-V
ROLLOFF: fall in level as signal spreads 
  Range: 0-1: 0 = no fall, to 1 = level divided by no. of chans. used. T-V

NOTES
MchSpread is part of a single CDP function MCHANPAN which has 10 modes. MchSpread is CDP Mode 4.

[1966] MchPanSet
MCHPANSET (CDP: mchanpan 7) 

MchPanSet pans from one set of channnel positions to another, passing through the centre. Both input and output are multi-channel (as the function involves sets of channel positions).

Each input channel in turn is mapped to each numbered channel in the PANDATA list. Passing from the mapping at one time, to the mapping at the next time, the sound in all channels spreads out until it is output equally from all channels, then contracts to the set of outchannel positions in the mapping at the new time. 

A problem with this function is the possibility of overloading as the sound passes through the centre.

PARAMETERS
PANDATA: lines of Time - Positions (list of ALL input chans in any order; or list of zeros: forces max. spread)
  Example: 	
;[Time]  [chans]
 0.0	1 2 3 4
 1.0	3 4 1 2
ROLLOFF: fall in level as signal spreads 
  Range: 0-1: 0 = no fall, to 1 = level divided by no. of chans. used. T-V

NOTES
MchPanSets is part of a single CDP function MCHANPAN which has 10 modes. MchPanSets is CDP Mode 7.

Compare with MchPan run with a multi-channel Infile and different parameters for each channel (probably more flexible than this?).

[1967] Pantiphon
PANTIPHON (CDP: mchanpan 6) 

Pantiphon is antiphonal panning between sets of channels, with optionally >1 input. The sets are defined by ANTIPHON: a text string of two sets of channel letters separated by a hyphen; e.g. abcd-efgh is an antiphon between chans 1,2,3,4 and chans 5,6,7,8.
The set switches after the time specified by EVENTDUR (event_duration).

If there is more than 1 input file, the next file is selected at each such antiphonal switch, and if the end of the input files is reached, the first file in the list is chosen again, and processing continues as before.

Silence can also be inserted prior to an antiphonal switch by using the GAP parameter.

PARAMETERS
OUTCHANS: Number of output channels
  Range: 3-16
ANTIPHON: two sets of channel letters separated by a hyphen
  Examples: abcd-efgh;  a-bcde; abc-bcdefg  
EVENTDUR: the time of each antiphonal event, before switching to the next event
  Range: 0.1 to 300 secs T-V
GAP: amount of silence to insert before switching to the next event
  Range: 0-60 secs T-V
SPLICE: Length of splice slope
  Range: 1-100 ms; default 15ms

NOTES
Pantiphon is part of a single CDP function MCHANPAN which has 10 modes. Pantiphon is CDP Mode 6.
Pantiphon could be used with several m-c files generated as a result of the various Mono to multi-channel processes, like MchPan or MchZig.

[1968] MchEvents
MCHEVENTS (CDP: mchanpan 3) 

MchEvents is the same as MchSpread (q.v.) except that the spread is of silence-separated events, i.e.the Infile must have some silences to separate segments as 'events' (c.f. the RETIME suite, which also deals largely with such 'events'). Unlike MchSpread, in which the sound spreads gradually across channels, here, an increase in the spread only occurs at the entry of a new event in the input file. 

There is one extra parameter, MINSIL, which defines a minimum silence between events, shorter silences being ignored.

PARAMETERS
OUTCHANS: Number of output channels
  Range: 2-16
CENTRE_CHAN: Central channel number of spreading. 
  Range: 1 to OUTCHANS  (Meant to be T-V, but probably NOT: .brks give CDP Error.)
SPREAD: Channel spread of output: from far left to far right of centre
  Range: 0 to OUTCHANS.  T-V
DEPTH:  maximum no. of channels (to left, and to right) utilised, behind leading edges.
The signal always reaches the maximum spread, but may have a hole in the middle.
  Range: 0-OUTCHANS/2. T-V
ROLLOFF: fall in level as signal spreads 
  Range: 0-1: 0 = no fall, to 1 = level divided by no. of chans. used. T-V
MINSIL: minimum silence between events; shorter silences are ignored.
 Range: 0.05 to 743 ms

OPTION
Widen steps: force the output to step wider by 1 channel (to both Left and Right) on every event, as far as the value given for spread.

NOTES
MchEvents is part of a single CDP function MCHANPAN which has 10 modes. MchEvents is CDP Mode 3.
(It is separated from MchSpread only because the latter can apparantly take stereo input, whereas this cannot.)

[1969] MchSwitch
MCHSWITCH (CDP: mchanpan 2/5/10) 

MchSwitch is part of a larger CDP process MCHANPAN, which deals with multi-channel panning. In this case (Mode 1, = CDP Mode 2), there is no actual panning: the (natively mono) input switches between output channels at the occurrence of each new silence-separated event. 'Events' are defined as sounds in the input file separated by silences; the input file must be of this type (produced in a number of ways, including granulation or corrugated/gated envelope in ENVLEVEL).  The list of channels is given in the SWITCHDATA textfile. If there are more events than channels in the switchdata file, the output wraps repeatedly around the defined pattern of channels. 

In Mode 2 (CDP: mchanpan Mode 5), the switching is antiphonal between silence-separated events (see Pantiphon for details); in Mode 3 (CDP: mchanpan Mode 10) it is random.

PARAMETERS
OUTCHANS: Number of output channels
  Range: 2 to 16
SWITCHDATA (Mode 1): textfile of channel numbers, which can be separated by a space, a tab or a new line.
  Range: 1 to OUTCHANS
  Example: 1  5  2  6  8  4  3  7  1 
ANTIPHON (Mode 2): two sets of channel letters separated by a hyphen (c.f. Pantiphon)
  Examples: abcd-efgh;  a-bcde; abc-bcdefg
MINSIL (Mode 2,3): minimum silence between events; shorter silences are ignored.
 Range: 0.05 to 743 ms
GROUPING (Mode 3): Maximum number of events at output channel, before switch to next output channel.
  Range: 0-1000

OPTIONS (Mode 3)
 Not adjacent: no steps allowed between ADJACENT output channels
 Randomize groups: randomize number of grouped events at each output channel

NOTE 
MCHANPAN has been split up into separate (groups of) processes in Soundshaper for technical reasons, largely to do with input requiements.
Soundshaper can handle stereo or multi-channel input. As each input (i.e. channel) will be switching between output channels, with the outputs mixed together, the results could get quite complex.  
 
//---------------------------------------------------

[197] [1974] Speed
SPEED (CDP: modify speed 1/2, strans multi 1/2): alter speed and pitch 

SPEED changes the speed of playback, which transposes the pitch, but also affects the duration of the sound. Speed is the classic way of changing the pitch of audio: a faster speed raises the pitch and shortens the duration, while a slower speed lowers the pitch and lengthens the duration. 

You can set the change as a RATIO (Mode 1), where 2 would represent an octave shift up and 0.5 an octave shift down; or you can set it as a TRANSPOSITION value of +/- so many semitones (Mode 2). Both are time-varying.

CDP has a separate multi-channel version of Speed (strans multi 1/2): Soundshaper automatically switches to this when processing a multi-channel file.

MODES
 1 Change speed and pitch by ratio
 2 Change speed and pitch by semitone value

PARAMETERS
RATIO of speed/pitch change: e.g. 2=+8ve,0.5=-8ve 
  Range: 0.00383 to 256; T-V 
TRANSPOSN: Number of semitones to transpose by; fractions are allowed. 
  Range -96 to +96 (semitones); T-V

NOTES
SPEED also changes two important aspects of sound: the attack 'transients' (which we expect to have a constant speed), and the formants, or dominant pitch areas, which in the case of speech we rely on to interpret syllables (especially vowels) correctly. 

To transpose without affecting time, or conversely to change the duration without affecting pitch, see TRANSPOSE in the spectral menu (and associated processes). 

CDP's other modes for "modify speed" are implemented in Soundshaper as separate processes: ACCEL and VIBRATO. Speed-change is also used in all CDP time-domain processes which change pitch, such as the TEXTURE processes, SEQUENCER, ITERATE, STACK etc. Though the transposition element works well in these processes, its effect on duration must also be taken into account.

Note also Soundshaper's BRK-RATIO function, which takes a pitch breakpoint file and converts it to ratios of the first value. Saved by default as 'ratio.brk', this can be directly applied to SPEED or the spectral TRANSPOSE to make a second sound mimic the transposition of the first.

[1971] [1975] Accel
ACCEL (CDP: modify speed 5, strans multi 3) 

ACCEL changes speed by accelerating (raising pitch) or decelerating (lowering pitch). The speed-change ACCEL is set as a transposition ratio. Optionally set the START TIME when the change begins and a "goal-time" (STOP): the time in the OUTPUT file when the accelerated speed should be reached. If the infile has not finished, the acceleration continues until it does; if it finishes before the goal-time is reached, then the ACCEL ratio is not achieved.

CDP has a separate multi-channel version of Accel (strans multi 3): Soundshaper automatically switches to this when processing a multi-channel file.

PARAMETERS
(START): time in INFILE at which accel/decel begins
  Range 0 to file-length (secs).
STOP: Goal-time - reach new speed by this time. 
  Range: >Start-time to file-length (secs).
ACCEL: Speed (tranposition ratio) to be reached by Goal-time: <1 slower ; >1 faster 

[1972] [1976] Vibrato
VIBRATO (CDP: modify speed 6, strans multi 4) 

VIBRATO raises and lowers ("modulates") the speed under the control of a low-frequency oscillation (LFO), presumably a sine-wave function. Two parameters control the LFO: RATE controls its speed (frequency), while WIDTH controls the depth of the pitch transposition. Both are time-varying.

CDP has a separate multi-channel version of Vibrato (strans multi 4): Soundshaper automatically switches to this when processing a multi-channel file.

PARAMETERS
RATE: Modulation speed/frequency 
  Range: 0-120 Hz.; T-V
WIDTH: Modulation width/depth. 
  Range: 0-96 semitones; T-V

NOTES
At one extreme, fast vibrato generates an audio tone if the frequency is in the audio range. 
At the other, extremely small and slow vibrato applied to a phase inverted signal (see LEVEL > Invert Phase), then mixed with the original, produces a "phasing" sweep effect, due to changing phase cancellation of frequencies.

[1973] Stack
STACK (CDP: modify stack) 

STACK mixes together transposed versions of the sound. The transpositions are either a constant interval apart (Mode 1) or are defined in a text datafile of semitone values (which may be fractional). The number of transposed versions are defined in COUNT, and their relative balance is set by LEVEL. The ATTACK-TIME offset can be used to align the transpositions (see example in NOTES). As the transpositions are done by speed-change, the lower/slower versions last longer, and can be curtailed by proportion (PROPN parameter).

MODES
 1 Constant interval: transpose by the interval set in TRANSPOSE (for Mode 1).
 2 Datafile: transpose by the transpostion values in the TRANSPOSE datafile (Mode 2).

PARAMETERS
TRANSPOSE (Mode 1): size of constant interval between superimposed transpositions. 
  Range: -60 to +60 semitones (fractional values allowed).
TRANSPOSE DATAFILE (Mode 2): textfile of transposition values in semitones 
  Range: -60 to +60 semitones (may be edited in GraphEdit).
COUNT: Number of tranposed copies in the stacked chord 
  Range: 2-32, including the original: 2 adds 1 copy
LEAN: loudness ratio of the highest component, relative to the lowest 
  Range: 0.01 to 100)
ATTACK-TIME offset: set the actual attack time in orig. if not at 0 
  Range: 0-filelength secs
GAIN: Overall gain; reduction is normally required to avoid overflow. 
 Range: 0.1 - 10
PROPN: proportion of output duration to keep: curtails long sounds to prevent trailing.
 Range: 0-1

OPTION: 
 See the relative levels of the layers in the stack
  (No provision for viewing the result in Soundshaper...)


NOTES
Stack is a good way of trying out harmonic ideas quickly, especially microtonal ones. Tiny constant intervals give a phase cancellation effect. The staggered timing differences of speed-change are arguably a bonus of STACK. 

The ATTACK-TIME offset may be illustrated by the following example:
Source attack starts at 0.5 secs and transpositions are 0, 12 and 24 semitones.
If you tell STACK that the attack is at zero (ATTACK-TIME=0), then the transposed sounds in the output will be lined up to synchronise at zero time, but you will actually hear the event attacks at .125 (24 semitones up), .25 (12 semitones up), and 0.5 seconds (original): because the transposed-up sounds are shorter, their attacks occur earlier. If, however, you ATTACK-TIME is set to 0.5 secs, then all the sounds will syncronise at 0.5 seconds in the output. (T.Wishart, paraphrased.)  

[ Speed
Multi-channel version of SPEED
[ Accel
Multi-channel version of ACCEL
[ Vibrato
Multi-channel version of VIBRATO

[198]  Delay
DELAY (CDP: modify revecho 1/2) 

Delay implements a classic delay line, with fixed and modulated delay times. The DELAY parameter sets the length of delay before the signal is repeated. MIX sets the amount of delayed signal, from 0% for original only ('dry') to 100% for processed signal only. 0.5 is a typical setting. 

FEEDBACK sets the amount of delayed signal fed back to create multiple echoes or resonance (at higher frequencies). For multiple repeats, set FEEDBACK > 0, or <0 to invert the phase (for phasing effects). The more feedback, the longer the delays last: you have to set a TAIL time to hear this tailing-off echo (not in Mode5: Pitched Delay). As 100% feedback would last for ever, TAIL is itself curtailed at 30".  Care should also be taken with extreme values of feedback; values > +/-0.98 may hang  (-0.999 in Pitched Delay mode stretched a 4.3" sound to 800"!).

PRESCALE: attenuates the input signal to avoid overload, espcially with high positive feedback.

Modes 3/4 (CDP Mode 2) modulate the delay time using a low-frequency oscillator (LFO). It is normal to mix original and delay to hear the phasing differences between the two signals, which is emphasized when negative feedback is used.  LFO MOD sets the depth of modulation while LFO FREQ sets the speed of the modulation sweep. You can also set the phase at which the oscillator sine-wave starts (LFO PHASE)and delay its onset (LFO DELAY). Finally, you can randomize the oscillations wtih negative values of LFO FREQ.

In Mode 5 (CDP: Newdelay), the delay time is expressed as a MIDI (or pseudo-MIDI) pitch value. In a delay line (with sufficient feedback), very short delays of typically less than 40ms (= 25Hz) create a pitched resonance. PCHDELAY allows you to set this delay time according to the required pitch. The range of this parameter is mich wider than actual MIDI pitch: from -76 (around 10secs delay) to 136 (over 21KHz). Soundshaper's Freq.-MIDI utility (Main Page > Tools > Pitch Calculator) allows you to translate delay times into the required MIDI values. (Note that MIDI 0 is not 0Hz but just over 8Hz.)
Unlike DELAY, there is no TAIL parameter and you may sometimes have to add some silence to the input sound to create one.

MODES
1 and 2 Fixed short/long delay time with feedback
3 and 4 Short/long delay with feedback and modulation
5 Delay time expressed as MIDI pitch (CDP: Newdelay)

PARAMETERS
DELAY Length of delay before signal repeated
  Range: 0.023-10000 msecs
Soundshaper splits each of the CDP Modes (fixed and varying delay) into two, in order to offer separate short and long delay times. In reality, there is only one DELAY parameter.
MIX: Amount of delayed signal in mix
  Range: 0 to 1; 0 is dry: original only; 1 is 100% processed only
FEEDBACK: Amount of delayed signal fed back to create multiple echoes/ resonance
  Range: -0.999 to + 0.999.  T-V in Modes 1 and 2 (Fixed delay) only.
TAIL: time to allow delayed signal to decay to zero
  Range: 0-30 secs
(PRESCALE): Scale input level to avoid overload
  Range: 0.000031 to 1.0
(SEED):  Where random LFO freq. used, >0 gives reproducible output (with same seed no.)
LFO MOD Modulation Depth: range of delay variation sweep 
  Range: 0 to 1
LFO FREQ: Frequency of delay variation sweep.
  Range: -50.0 to +50.0 (Hz)  Negative values give random oscillations.
LFO PHASE: Start phase of delay variation sweep 
  Range: 0 to 1
LFO DELAY: Time before delay variation sweep begins 
  Range: 0-filelength secs
PCHDELAY (Mode 5): Delay time expressed as MIDI pitch values 
  Range: -76 to +136 (pseudo-MIDI pitch)  T-V

OPTION: 
 Invert the dry signal in Fixed Delay (for phasing effects)

NOTES
Pitched Mode (5):
Note that PCHDELAY is time-variable, which means that any contour of delay variation may now be constructed within CDP. (Other modes of DELAY uses a sine-wave LFO to vary delay times.) A nice feature of this pitched mode is that you can explore the relationship between rhythm and pitch (with rhythm as subsonic frequency), which some composers (e.g. Stockhausen) have found structurally useful.
Soundshaper's Freq-Pch calculator will accept negative MIDI values.


[1981] Varidelay
Varidelay: LEGACY ONLY -- now incorporated into DELAY as Modes 3 and 4. Please use DELAY for new applications.

[1982] ECHO
ECHO (CDP: modify revecho 3) 

ECHO produces stereo echoes with specified delay time and number of echoes. ECHO is a simple delay line designed to emulate stadium-type echoes, in which the whole signal bounces around stereo space, with a very prominent delay factor. To set the delay time, a standard unit length (0.1 secs) is multiplied up or down by GAP_SIZE. COUNT enables you to specify the exact number of echoes, while ROLL_OFF controls the rate of decay from one echo to the next.

With a stereo output, the function is very useful for creating a fake stereo signal (or chorus effect) from a mono signal, with tiny delays being scattered randomly in stereo space, as they might be in a hall.

PARAMETERS
(GAIN): Gain to apply to input signal to avoid overflow 
  Range: 0.000031 to 1.0; default: 0.646
(ROLL-OFF): Rate of loss of level; lower = slower decay 
  Range: 0.000031 to 1.0; default: 1
(GAP SIZE): Multiplies average time between echoes, in units of 0.1 secs. 
  Range: 0.000005 - 1.0 - 100; default 1, i.e. 0.1".
  Beyond gap_size = 2, you may have to increase the Memory Size (see Settings page).
(COUNT):  Number of echoes. note the large default number if not set. 
  Range: 1-1000; default and max: 1000

NOTE 
If no parameters are set, the defaults are: 1000 echoes at 0.1" gaps, with an initial gain reduction of about 3.8dB and no roll-off.

[1983] MchEcho
MCHECHO (CDP: Mchanrev) 

MchEcho is much the same as ECHO -- echoes scattered over stereo space -- except that here the output is scattered over multi-channel space. Most parameters are as for ECHO (though here they are not optional): to set the delay time, a standard unit length (0.1 secs) is multiplied up or down by GAP_SIZE. COUNT enables you to specify the exact number of echoes, while ROLL_OFF controls the rate of decay from one echo to the next.

Other paremters relate to multi-channel spatial distribution: CENTRE defines a central position of the reverberated image, among the output channels, while SPREAD determines how many channels recieve the echoes. No parameters are time-varying. 

PARAMETERS
PARAMETERS
GAIN: Gain to apply to input signal to avoid overflow 
  Range: 0.000031 to 1.0; default: 0.646
ROLL-OFF: Rate of loss of level; lower = slower decay 
  Range: 0.000031 to 1.0; default: 1
GAP SIZE: Multiplies average time between echoes, in units of 0.1 secs. 
  Range: 0.000005 - 1.0 - 100; default 1, i.e. 0.1".
  Beyond gap_size = 2, you may have to increase the Memory Size (see Settings page).
COUNT:  Number of echoes. note the large default number if not set. 
  Range: 1-1000
OUTCHANS: Number of output channels
  Range: 2-16
CENTRE: central channel position (can be a fractional value); see NOTES.
  Range: 1 to OUTCHANS; value < 1 lies between last and 1st channel. (Not T-V)
SPREAD: Width of spatialisation around CENTRE channel.
  Range: 2-OUTCHANS channels.  (Not T-V)

NOTES
MchEcho is one of a number of multi-channel functions in which the signal is partitioned into channel-streams. The partitions themselves may have musical uses if the channels are then split. Others are MchIter, MchShred, MchZig, TexMChan and MchGrain (CDP: 'wrappage').

If the channel count is 2, the program will function much as its stereo sister ECHO.

CENTRE: Most CDP multichannel programs seem to envisage the following 8-channel 'ring' format:
                             1                        
                          8     2                  
                         7       3                
                          6     4                  
                             5        

[1984]	NEWDELAY
NEWDELAY (CDP: newdelay) 

NewDelay is the same as DELAY, except that the delay time is expressed as a MIDI (or pseudo-MIDI) pitch value. In a delay line (with sufficient feedback), very short delays of typically less than 40ms (= 25Hz) create a pitched resonance. PCHDELAY allows you to set this delay time according to the required pitch. The range of this parameter is mich wider than actual MIDI pitch: from -76 (around 10secs delay) to 136 (over 21KHz). Soundshaper's Freq.-MIDI utility (Main Page > Tools > Pitch Calculator) allows you to translate delay times into the required MIDI values. (Note that MIDI 0 is not 0Hz but just over 8Hz.)

Note that PCHDELAY is time-variable, which means that any contour of delay variation may now be constructed within CDP. (DELAY uses a sine-wave LFO to vary delay times.)

As in a standard delay line (like DELAY), MIX sets the amount of delayed signal in the mix; 0.5 is a typical value. FEEDBACK sets the amount of delayed signal fed back to create multiple echoes or resonance (at higher frequencies). Care should be taken with extreme values of feedback; values > +/-0.98 may hang  (-0.999 stretched a 4.3" sound to 800"!). 

Unlike DELAY, there is no TAIL parameter and you may sometimes have to add some silence to the input sound to create one.

PARAMETERS
PCHDELAY: Delay time expressed as MIDI pitch values 
  Range: -76 to +136 (pseudo-MIDI pitch)  T-V
MIX: Amount of delayed signal in mix
  RAnge: 0 to 1; 0 is dry: original only; 1 is 100% processed only
FEEDBACK: Amount of delayed signal fed back to create multiple echoes/ resonance 
  Range: -0.999 to +0.999)

NOTES
A nice feature of this function is that you can explore the relationship between rhythm and pitch (with rhythm as subsonic frequency), which some composers (e.g. Stockhausen) have found structurally useful.
 
Soundshaper's Freq-Pch calculator will accept negative MIDI values.

[1985]	ECHOES	
ECHOES (CDP: sfecho echo) 

ECHOES repeats the entire file over a given DURATION, with a DELAY time not less than the Infile-length. DELAY can be randomized by RAND_DELAY. There is optional attenuation (ATTEN) to simulate an echo effect, and gated cut-off of low-level echoes (GATELEVEL).

Care should be taken with DELAY in relation to DURATION: the latter must be long enough to accomodate at least two playings. (With a time-varying delay, keep the delay times short and DURATION relatively long.) If DELAY is unsuitable, the function produces just the one playing, i.e. no change. 

PARAMETERS 
DURATION: Length of outfile required; must be minimum of 2 x DELAY
  Range: secs: Infile-length * 2 to 3600 + Infile-length (Soundshaper to 300) 
DELAY: delay time between repeats; must be > soundfile-length 	T-V
  Range: secs: >Infile-length to 3600 (Soundshaper to 300)
ATTEN: Relative level of each repetition  T-V
  Range: 0-1
RAND DELAY: Randomise delay times  T-V
  Range 0 - 1; default 0
GATELEVEL: dB level below which decaying echoes cut off. Set to default -96dB if not wanted.
  Range: 0 to -96 dB; default -96dB)

NOTES
There are already several CDP functions offering echo: 
REPETITIONS also gives a repetition of the whole soundfile. 
ECHO is very similar, though GapSize can be awkward to calculate. 
ITERATE is possibly the closest, apart from its parameters not being time-variable.

[1941] CHANPHASE Invert phase of one channel.
CHANPHASE (CDP: chanphase) 

CHANPHASE  inverts the phase of one channel. Phase inversion produces the "negative" version of a signal (all positive values become negative and vice-versa). For example, if both channels of a stereo signal are identical, then if one channel is inverted and StoM reduces the signal to mono, the result should be silence. 

PARAMETER
CHANNEL: number of channel to invert
  Range: 1-16, but not higher than the number of input channels.

NOTES
CDP already has a facility to invert the full signal (all channels); this extends the suite by enabling any specified channel to be inverted.

Inverting one channel of a genuine stereo recording may have a noticeable impact on the stereo "image" of the sound.

[199]  GRAIN
GRAIN (CDP: modify brassage/sausage)

GRAIN is similar to the delay functions, especially LOOP. The soundfile is segmented and the repeated segments (grains) can overlap in time, giving thick textures. You can also timestretch/shrink the sound and change the pitch.
 
DENSITY controls the number of repetitions and overlapping: >1, the grains overlap; 1, grains are laid end-to-end; <1 there are gaps between them.
>1:overlap   1:end-to-end       <1: gaps
______            ______                   ______
  ______                ______                      ______
    ______                    ______                         ______

GRAINSIZE gives the segment length: extremely small values may give an impossibly long outfile - to avoid an error message, set the optional OUTLENGTH parameter. The amount of overlap is determined by GRAINSIZE/DENSITY - e.g. if grainsize is 200msecs and density is 50, then a new grain will start every 4msecs (a resonance of 250Hz).

VELOCITY is a timestretch/shrink control, determining the speed at which the original file is read. 
1 signifies no change - you may notice very little difference from the original.
<1 is stretched, e.g. a value of 0.25 produces an outfile approx. 4 times as long as Infile. 
>1 is shrunk: the outfile is faster by approximately this amount.

PITCHSHIFT transposes the grains. Although the output grainsize will be longer or shorter, this has a small effect on the overall outfile length, if the grains overlap.

Modes 1-4 offer these 4 parameters singly for simple processing. The GRAIN page defaults to the BRASSAGE mode, which has all the main parameters. WHOLEGRAIN mode introduces "High" versions of the parameters, the value being chosen at random between the ordinary parameter value and the High value.  SAUSAGE mode is identical to WHOLEGRAIN, except that the process cycles round several input soundfiles.   Almost all of the parameters are time-varying, giving many possibilities.  

MODES
 1 Pitch Shift: Shift the pitch while retaining the same (approx) duration 
   Uses PITCHSHIFT param. only.
 2.Time Stretch: Stretch or compress sound in time while retaining the same pitch. 
   Uses VELOCITY param. only.
 3.Reverb: Create reverberant effect within timeframe of RANGE
   Uses DENSITY, AMP, PITCH_TRANS and RANGE
 4 Scramble: Randomly reorder grains within timeframe of RANGE
   Uses GRAINSIZE and RANGE
 5 BRASSAGE: All parameters as single values (no ranges)
 6 WHOLE-GRAIN: All parameters plus optional ranges of values, randomized within limits set
 7 SAUSAGE: As WHOLE-GRAIN but with multi-file input

PARAMETERS
VELOCITY: "Timestretch" factor: >1 is faster/shorter/time-shrunk; <1 is slower/longer.
VELO_HI: Top of range for velocity
  Range: 0.001 - 1 - 1000; T-V   
DENSITY: Degree of grain overlap; <1 gives inter-grain silence. Avoid very small values.
DENSITY_HI: Top of range for Density. 
  Range (Soundshaper): 0.001 - 1 - 1000  (Full range: 0.000002 to 16384.0); T-V
GRAINSIZE: Segment length
GRAINSIZE_HI: Top of range for Grain size
  Range: 2-1997 ms; default 50ms.  Minimum:  > twice length of splices. T-V
PITCHSHIFT: Transposition of grains.
PITCHSHIFT_HI: Top of range for pitch shift
  Range: -100 - 0 - +100 semitones (fractions allowed); T-V
AMP: Gain (loudness) applied to grains
AMP_HI: Top of range for amplitude 
  Range: 0 to 1; Default: 1.0 T-V
SPACE: Spatial position in stereo outfile (output of GRAIN is stereo.)
SPACE_HI: Top of range for Space
  Range: 0 = L to 1 = R   T-V
START_SPLICE: Length of splice at start of grains.
START_SPLICE_HI: Top of range for Start-splice  
  Range: 1-1548 msecs; default: 5   T-V
END_SPLICE: Length of splice at end of grains.
END_SPLICE_HI: Top of range for End-splice
  Range: 1-1548 msecs; default: 5  T-V
PITCH TRANS (Mode 3 Reverb only): Transposition factor
  Range: -0.33 to 0.33  T-V
(RANGE): limit of search for next grain, before infile 'now'. 
  Range: 1 to infile-length x 2 msecs; default: 0; must be >0 for Modes 3 Reverb and 4 Scramble T-V
(JITTER): Randomisation of grain position; called "WANDER" in CDP's standalone 'Grainmill' program. 
  Range: 0-1; default: 0.5. T-V
OUT_LENGTH: maximum length of outfile - only needed if velocity very low or = 0.
  Range: 0-300 secs (arbitrary max.)
(ONE-CHANNEL): Process only 1 channel of stereo. Not relevant to Soundshaper. Natively, stereo files are mixed to mono before processing; this selects one of the channels instead. However, in Soundshaper, each channel is processed separately in any case, and the results mixed afterwards.
  Range: 1 (Left) or 2 (Right).

OPTIONS
 Use exponential instead of linear splices
 No interpolation between different pitches (NOT RECOMMENDED).

NOTES
See CDP documentation for a more detailed explanation.

[1991] Granulate
GRANULATE (CDP: modify brassage 5) 

Granulate creates grains in a soundfile, so that it may be treated by other grain-transforming processes. "Grainy" sounds are generally regarded as those in which the level drops significantly between the grains, or they are separated by silence. 

There is just one parameter: DENSITY, which should be set to <1 to create inter-silence grains.

PARAMETER
DENSITY: Degree of grain overlap; <1 gives inter-grain silence. Avoid very small values. (T-V)
  Range: 0.0002 - 2

NOTES
Granulate is just one mode of CDP's GRAIN (Brassage/Sausage) process. Hence any setting of DENSITY <1 within that program wil also produce a grainy sound. Alternatively, you can create your own grains by editing: send a list of marker times to MASKS, which can mask sections of sound with silence (min.0.032 secs) and separate the sections. To find events of significant amplitude (for marker times), use ONSETS (Info > Soundfiles > Gated Onsets).

[1992] MchGrain
MCHGRAIN (CDP: Wrappage) 

MchGrain is the same as GRAIN (Sausage), but adds multi-channel output: instead of being distributed in stereo space, the output is distributed over a given number of channels. There can be more than one input; the program natively expects mono input, but Soundshaper will accept stereo or multi-channel. If the multi-params checkbox is checked on the parameter page, you can have a different parameter set for each input channel.

As in MchEcho, multi-channel distribution is spread (SPREAD) 'outwards' from a designated central channel position (CENTRE). Both CENTRE and SPREAD are time-variable (unlike MchEcho).
  
PARAMETERS
The extra parameters for multi-channel use (c.f. MchEcho), are:
OUTCHANS: Number of output channels
  Range: 2-16
CENTRE: central channel position (can be a fractional value); see NOTES.
  Range: 0 to OUTCHANS; value < 1 lies between last and 1st channel. T-V
  T-V file: TIME CENTRE DIRECTION (+/-1)
  Direction (either 1 = clockwise, or -1 = anticlockwise) is CENTRE's move from its previous position.
SPREAD: Width of spatialisation around CENTRE channel.
  Range: 0-OUTCHANS channels; T-V
- - - - - -
Also:
(MULT): Multiplier - enlarge output buffer. Long silences in output may require larger buffer.
  Range: 1.0 (default) to 10.0

NOTES
MchGrain is one of a number of multi-channel functions in which the signal is partitioned into channel-streams. The partitions themselves may have musical uses if the channels are then split.
Others are MchIter, MchShred, MchZig, TexMChan and MchEcho (CDP: MchanRev).

If the channel count is 2, the program will function much as its stereo sister Sausage (GRAIN mode 7).

CENTRE: Most CDP multi-channel programs envisage the following 8-channel 'ring' format:
                             1                        
                          8     2                  
                         7       3                
                          6     4                  
                             5        

[end of file]